4

リクエスト検証クラスでルート パラメータを検証したい。この質問は以前に何度も尋ねられたことは知っていますが、この質問によると、メソッドをオーバーライド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() メソッドをオーバーライドするのは何が問題なのですか?

4

2 に答える 2