验证所有请求

时间:2017-01-01 03:59:19

标签: laravel laravel-5.3

我有这样的表格:

<form role="form" method="POST" action="{{url('/books')}}">
                {!! csrf_field() !!}
                <div class="col-sm-5">
                    <label>Book Name:</label> <input type="text" class="form-control" name="name"><br>
                    <label>Pages:</label>  <input class="form-control" type="text" name="pages"><br>
                    <label>Price in Rs:</label> <input type="text" class="form-control" name="price"><br>
                    <input type="submit" class="btn btn-default"><br>
                </div>
                </form>

我正在尝试验证所有表单字段是否已设置且不为null。类似于isset()。但是,即使在没有在任何输入中输入值的情况下提交,也不会执行语句。不是$request->all()应该这样做。

public function store(Request $request)
    {
        if($request->all())
        {
            $book=new Book();
            $book->name=$request->name;
            $book->pages=$request->pages;
            $book->price=$request->price;
            if($book->save())
            {
                return Response::json(true);
            }
            else
            {
                return Response::json(false);   
            }
        }
        else
        {
            return "norequest";
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以使用Laravel的ValidatesRequests特征。

store中的代码可能如下所示:

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required',
        'pages' => 'required',
        'price' => 'required'
    ]);

    // the rest of your code goes here....


}

在这里,上面的代码将完成你想要的。因此,无需使用$request->all()来检查是否所有字段都已设置且不为空。

希望这有帮助。