【发布时间】:2017-10-02 09:00:31
【问题描述】:
我有ItemController.php 和ItemRequest.php.。 ItemController.php 负责添加项目,ItemRequest.php 负责表单验证。
在ItemRequest.php我有这个规则
class ItemRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title' => 'required',
'category_id' => 'required',
];
}
public function messages()
{
return [
'title.required' => 'The :attribute field is required.',
'category_id.requred' => 'The :attribute field is required.',
];
}
}
在我看来我有这个
@if($errors->has())
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> Alert!</h4>
@foreach ($errors->all() as $error)
{{ $error }}</br>
@endforeach
</div>
@endif
问题是表单没有得到任何验证。我可以单击带有空字段的提交并将它们插入数据库中。
这是来自ItemController.php的存储功能
public function store( ItemRequest $request )
{
$item = new Item;
$item->title = $request['title'];
if( empty( $request['alias']) ) {
$request['alias'] = $request['title'];
}
$item->category_id = $request['category_id'];
$item->save();
return redirect()->route('admin.items');
}
为什么我在页面上没有收到任何消息或验证?
【问题讨论】:
-
代码中定义的 $errors 变量在哪里?
-
你在
ItemController.php中定义了验证器函数吗? -
不,我没有在 ItemController 中定义这个
-
你是如何创建
ItemRequest是用命令行吗?
标签: php validation laravel-5