我正在学习/使用Laravel5并使用请求生成器工具制作自定义请求验证处理程序;
php artisan make:request <nameOfRequestFile>
我发现我的验证总是过去,但我不知道为什么。
在我的观点中,我对错误进行了一次虚假的讨论;
{{ var_dump($errors) }}
当我提交一个空表单时,它总是会插入一条新记录,当它失败时。
var转储报告;
object(Illuminate\Support\ViewErrorBag)#135 (1) { ["bags":protected]=> array(0) { } }
这似乎暗示错误包总是空的。
我的请求文件很简单
namespace App\Http\Requests;
use App\Http\Requests\Request;
class PublishDriverRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name.required|min:3' => 'Please provide a name.',
'companyName.required|min:3' => 'Please provide a company name.'
];
}
}
我检查了输入表单,名称相同;
<input type="text" name="name" id="name" class="form-control">
<input type="text" name="companyName" id="companyName" class="form-control">
我检查了我的数据库,名字也一样。
存储数据时我的控制器同样直截了当;
public function store(PublishDriverRequest $request) {
Driver::create($request->all());
return redirect('/');
}
所以我不确定为什么验证总是通过;如果我提交一个空表格,它应该失败,因为规则表明最小长度和要求。
我做错了什么?
答案 0 :(得分:2)
将验证规则更改为:
public function rules()
{
return [
'name' => 'required|min:3',
'companyName' => 'required|min:3',
];
}
显示自定义验证错误:
public function messages()
{
return [
'name.required' => 'Please provide a name.',
'companyName.required' => 'Please provide a company name.',
];
}
注意:在
之前使用message()
rules()
方法