如何检查对象中的必填字段?

德米特里·斯科格列夫(Dmitriy Skogorev)

我有带有字段的示例对象

name => John
surname => Dow
job => engineer

和带有占位符的输出表单。有些是必需的,有些不是。

检查它是否要求并显示空字段错误的最佳实践是什么?

穆罕默德·伊斯坦布尔

实际上,您可以通过多种方法在控制器方法中进行操作,或者为我使用Laravels请求类,我更喜欢使用请求类

看下面,我将列出两个例子

  1. 在控制器方法内部进行验证

    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 
        }
    }
    
  2. 第二种方法是使用控制器内部的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*/
         }
    }
    
  3. 第三条我最喜欢的人

    您可以使用此命令生成一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章