我使用以下代码创建了一个名为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
的{{1}}方法,使其看起来像这样:
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
进入屏幕。
我错过了一些明显的东西吗?我已经followed the docs来做这个。
编辑:我正在使用资源控制器,因此路由为1
答案 0 :(得分:0)
有点尴尬,但这纯粹是由于开发人员的错误。自定义表单请求实际上是正确运行的……只是我的规则引用了我忘记输入表单中的一个字段,因此不会在屏幕上显示错误!一旦我回应了通常的$ errors数组,我就可以看到我的错误-我会怪罪于深夜编码!