Route::get('hello/{id?}/{pass?}', 'HelloController@index');
こう送られてくる想定のパラメータに対しRequestでValidateをかけるには、 Requestのall()メソッドでパラメータを追加する。
HelloRequestを作成
$ php artisan make:request HelloRequest
HelloRequestを編集
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Input;
class HelloRequest extends FormRequest {
public function authorize() {
return true;
}
public function rules() {
return [
'id' => 'required|string',
'pass' => 'required|string',
];
}
public function all()
{
$request = Input::all();
$request['id'] = $this->route('id');
$request['pass'] = $this->route('pass');
return $request;
}
}
all()メソッドで、idとpassをvalidateの対象にしている。
あとは普通にControllerでHelloRequestを指定する。
use App\Http\Requests\HelloRequest;
class HelloController extends Controller {
// HelloRequestを引数にする。
public function index(HelloRequest $request) {
...
...
}
}
参考
こちらのサイトを参考にさせていただきました、ありがとうございます。