我有带有字段的示例对象
name => John
surname => Dow
job => engineer
和带有占位符的输出表单。有些是必需的,有些不是。
检查它是否要求并显示空字段错误的最佳实践是什么?
实际上,您可以通过多种方法在控制器方法中进行操作,或者为我使用Laravels请求类,我更喜欢使用请求类
看下面,我将列出两个例子
在控制器方法内部进行验证
public function test(Request $request){
if($request->filled('name){
/*filled will check that name is set on the current
request and not empty*/
//Do your logic here
}
}
第二种方法是使用控制器内部的Validator Facade
use Validator;
class TestController{
public function test(Request $request){
$validator = Validator::make($request->all(), [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
/*continue with your logic here if the request failed on
validator test Laravel will automatically redirect back
with errors*/
}
}
第三条我最喜欢的人
您可以使用此命令生成一个Request类
php artisan make:request AddBookRequest
它将在“ app / Http / Requests / AddBookRequest”下生成请求类,在任何生成的请求类内部,您将找到两个方法authorize()和rules()
在授权方法中,您必须返回true或falsy值,这将检测发出请求的当前用户是否具有在rules方法内部执行此请求的授权,就像在第二种方法中在Validator中所做的一样
public function authorize(){
return true;
}
public function rules(){
return [
'title' => 'required|string',
'author_id' => 'required|integer'
];
}
然后只需在您的控制器中使用这样生成的请求即可
use App\Http\Requests\AddBookRequest;
public function store(AddBookRequest $request){
/* do your logic here since we uses a request class if it fails
then redirect back with errors will be automatically returned*/
}
希望这可以帮助您在https://laravel.com/docs/5.6/validation上阅读有关验证的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句