リクエスト検証クラスでルート パラメータを検証したい。この質問は以前に何度も尋ねられたことは知っていますが、この質問によると、メソッドをオーバーライドall()
すると、次のエラーが表示されます。
Class App\Http\Requests\DestroyUserRequest does not exist
私はLaravel5.7を使用しています。
ルート:
Route::delete('/user/{userId}/delete', 'UserController@destroy')->name('user.destroy');
コントローラ:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\DestroyUserRequest;
use App\User;
class UserController extends Controller
{
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy(DestroyUserRequest $request)
{
User::find($request->route('userId'))->delete();
return $request->route('userId');
}
}
DestroyUserRequest:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class DestroyUserRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'userId' => 'integer|exists:users,id'
];
}
public function all()
{
$data = parent::all();
$data['userId'] = $this->route('userId');
return $data;
}
}
all() メソッドをオーバーライドするのは何が問題なのですか?