0
我想實現一個通用的資源控制器,可以響應基本索引/顯示/存儲/更新/銷燬調用。通用ResourceController與Laravel中的FormRequests
我想能夠傳遞一個特定的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