雖然admin中文文件 給出了驗證規則的編寫方法,但是並沒有介紹怎麼使用已有的請求類進行驗證 。你將不得不編寫類似於$form->text('title')->rules('required|min:3');
這樣的多條 rules()
經過數小時的探索,我終於找到了更加優雅的寫法。只需在繼承了AdminController的控制器裡面覆寫一個store()函式即可,如下所示
class UserController extends AdminController
{
public function store()
{
app(UserRequest::class);
return $this->form()->store();
}
...
}
這個函式裡面的關鍵程式碼是app(UserRequest::class)
,只需要把請求類的名稱用app()函式套一下就OK了!如果控制器呼叫的是update()方法,則覆寫update()方法(程式碼與上面的類似,只需修改一下儲存資料的函式名稱即可)。效果如下圖
或許大家會想到下面這樣的寫法,寫法是優雅,可惜會報錯Declaration of App\Admin\Controllers\UserController::store(App\Http\Requests\UserRequest $request) should be compatible with Encore\Admin\Controllers\AdminController::store()
public function store(UserRequest $request)
{
return $this->form()->store();
}
本例安裝的encore/laravel-admin版本為1.7.9
本作品採用《CC 協議》,轉載必須註明作者和本文連結