0
基本的なインデックス/ show/store/update/destroy呼び出しに応答できる汎用リソースコントローラを実装しようとしています。LaravelのFormRequestsを使用した汎用ResourceController
私はこのコントローラに特定のFormRequestクラスを渡して、ストア呼び出しと更新呼び出しの入力を検証できるようにしたいと考えています。しかし、私はこの最後のビットを動作させることができませんでした。
ありがとうございました!
<?php
namespace App\Http\Controllers;
class ResourceController extends Controller
{
private $model; //Resource this controller configures.
private $formRequest; //A FormRequest for validating resource input.
private $requestParams; //The possible parameters for resource input.
public function __construct(String $modelClass, String $formRequestClass, array $requestParams){
$this->model = $modelClass;
$this->formRequest = $formRequestClass;
$this->requestParams = $requestParams;
}
/**
* Display a listing of the resource.
*/
public function index()
{
return $this->model::all();
}
/**
* Store a newly created resource in storage.
*/
public function store()
{
return $this->model::create(request($this->requestParams));
}
/**
* Display the specified resource.
*/
public function show($id)
{
return $this->findResource($id);
}
/**
* Update the specified resource.
*/
public function update($id)
{
$resource = $this->findResource($id);
$resource->update(request($this->requestParams));
return $resource;
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
$this->findResource($id)->delete();
}
private function findResource($id){
return $this->model::find($id);
}
}
私はフォーム要求の利点を維持し、懸念の分離を維持するために、検証ロジックをより具体的なクラスに抽象化しようとしています。 – GroovyP