版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33867131/article/details/86137946
在项目下执行命令:php artisan make:request CreateProjectRequest(随表起一个名字)
(1)执行命令后,会生成一个文件:app/Http/Requests/CreateProjectRequest.php
修改CreateProjectRequest.php/rules()方法:
public function rules()
{
return [
// projects表的name字段,必填|唯一
'name' => 'required|unique:projects,name',
// projects表的thumbnail字段,图片|尺寸260×100
'thumbnail' => 'image|dimensions:min_width=260,min_height=100'
];
}
(2)CreateProjectRequest.php新增 messages()方法:
// 因为错误信息是英文,我们当然要改成中文了,自定义下面的方法就可以啦
public function messages()
{
return [
'name.required'=>'项目名称是必填的~',
'name.unique'=>'项目名称必须是唯一的~'
];
}
(3)在你使用表单的ControllerliRe里使用CreateProjectRequest(将Request替换为CreateProjectRequest)
public function store(CreateProjectRequest $request){
$this->repo->create($request);
return '成功';
}
(4)在HTML填入错误提示信息($errors全局变量)
@if($errors->any())
<ul class="alert alert-danger">
@foreach($errors->all() as $erro)
<li>{{ $erro }}</li>
@endforeach
</ul>
@endif
注意了:只对当前用户进行唯一性的数据验证
(1)导入包:use Illuminate\Validation\Rule;
(2)修改CreateProjectRequest.php/rules()方法:
public function rules()
{
return [
// projects表的name字段,必填|唯一
'name' => [
'required',
// request()->user()能够获取到当前登录的用户
Rule::unique('projects')->where(function ($query){
return $query->where('user_id', request()->user()->id);
})
],
];
}