大家好~
如果有个表单验证需要大量重复使用的话,
我们可以为此表单验证建立一个 FormRequest class。
接下来的实作内容就用 Day05 做好的留言板表单验证当作例子吧!
php artisan make:request MessageValidation
建立好的 FormRequest class 会在 app/Http/Requests
下喔。
首先将 authorize()
的 return false
改成 return true
。
public function authorize()
{
return true;
}
将我们想使用的验证规则写在 rules()
这个 function 内吧!
public function rules()
{
return [
'title' => 'required|string|max:50',
'content' => 'required|string|between:2,255'
];
}
如果有想自定义的错误讯息,
可以在我们建立的 FormRequest class 内建立一个 messages()
,
然後把自定义的错误讯息内容写在这个 function 内。
public function messages()
{
return [
'required' => ':attribute 未填。',
'string' => ':attribute 格式不支援。',
'between' => ':attribute 文字长度请在:min至:max间。',
'max' => ':attribute 文字长度请在:max以内。',
];
}
如果是想针对一个栏位上的规则去做自定义的错误讯息,
可以在规则前面加上栏位名称,
并用 .
连接。
如:
return [
'title.max' => ':attribute 文字长度请在:max以内。',
];
自定义的错误讯息内有提供一些占位符供我们使用,
上面用到的 :attribute
、 :min
、 :max
都是占位符。
如果需要其他占位符的用法可参考官方文件。
完成後的自定义错误讯息大概是像这样子~
先在 Controller 内 use 我们的 FormRequest class。
use App\Http\Requests\MessageValidation;
然後将原本 type-hint 的 Request
改成我们要使用的 FormRequest class,
这样传入的资料就会是做完表单验证的资料罗。
下面是用新增留言功能作为例子:
public function store(MessageValidation $request)
{
$validated=$request->validated();
$message = Auth::user()->messages()->create($validated);
return response(MessageResource::make($message), Response::HTTP_CREATED);
}
今天就先这样啦,
明天来认识如何不用另外建立 FormRequest class 也能自定义错误讯息的方式吧!
大家明天见啦~
若文章有任何问题,
还请大家不吝赐教!
<<: [Angular] Day24. Template-driven forms
本节是以 Golang 上游 ee91bb83198f61aa8f26c3100ca7558d30...
什麽是 Worker Pool Pattern? 设定好 pool 的 goroutine 数量,预...
用户在使用服务的同时,其实就已经在个资隐私法规的保护之下享受服务需求,从用户第一次看到服务,到注册帐...
终於30天了(烟 第二年参赛都顺利结束,回想第一年每天都在赶QQ 今年比前年顺利!题目根本不用想要写...
该文章同步发布於:我的部落格 检查电脑是否有 Ruby 铁人赛文章主要以 Mac 作业系统为主,避...