Laravel 5.8 自定义表单请求未按预期工作?
Laravel 5.8 Custom Form Request not working as intended?
我使用以下代码创建了一个名为 ClientStoreRequest
的自定义表单请求:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ClientStoreRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
// return $this->user()->can('add-clients');
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|unique:clients|max:255',
'website' => 'required|url',
'street' => 'required',
'town' => 'required',
'postcode' => 'required|max:8',
'county' => 'required',
'country' => 'required'
];
}
}
然后我修改了 ClientController
的 store
方法,使其看起来像这样:
/**
* Store a newly created resource in storage.
*
* @param ClientStoreRequest $request
* @return \Illuminate\Http\Response
*/
public function store(ClientStoreRequest $request)
{
dd(1);
}
所以当提交表单时,它应该终止页面并在屏幕上打印 1
。当我使用 ClientStoreRequest $request
时,它只是将我送回我提交表单的页面,没有错误,也没有 dd(1)
结果,但是当我使用 Request $request
时,它会打印 1
到屏幕上。
我是不是漏掉了一些很明显的东西?我已经 followed the docs 做了这个。
编辑:我正在使用资源控制器,所以路线是 Route::resource('clients', 'ClientController');
有点尴尬,但这完全是开发人员的错误。自定义表单请求实际上工作正常...只是我的规则引用了一个我忘记放入表单中的字段,所以没有在屏幕上显示错误!一旦我回显了通常的 $errors 数组,我就可以看到我的错误 - 我会责怪深夜编码!
我使用以下代码创建了一个名为 ClientStoreRequest
的自定义表单请求:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ClientStoreRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
// return $this->user()->can('add-clients');
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|unique:clients|max:255',
'website' => 'required|url',
'street' => 'required',
'town' => 'required',
'postcode' => 'required|max:8',
'county' => 'required',
'country' => 'required'
];
}
}
然后我修改了 ClientController
的 store
方法,使其看起来像这样:
/**
* Store a newly created resource in storage.
*
* @param ClientStoreRequest $request
* @return \Illuminate\Http\Response
*/
public function store(ClientStoreRequest $request)
{
dd(1);
}
所以当提交表单时,它应该终止页面并在屏幕上打印 1
。当我使用 ClientStoreRequest $request
时,它只是将我送回我提交表单的页面,没有错误,也没有 dd(1)
结果,但是当我使用 Request $request
时,它会打印 1
到屏幕上。
我是不是漏掉了一些很明显的东西?我已经 followed the docs 做了这个。
编辑:我正在使用资源控制器,所以路线是 Route::resource('clients', 'ClientController');
有点尴尬,但这完全是开发人员的错误。自定义表单请求实际上工作正常...只是我的规则引用了一个我忘记放入表单中的字段,所以没有在屏幕上显示错误!一旦我回显了通常的 $errors 数组,我就可以看到我的错误 - 我会责怪深夜编码!