【问题标题】:Laravel validation: Call to a member function fails() on nullLaravel 验证:在 null 上调用成员函数失败()
【发布时间】:2016-08-12 17:00:00
【问题描述】:

这段代码几天前还在工作,但我似乎做了一些事情导致它崩溃。

我有这条路线:

Route::post('admin/routemanagement', 'AdminController@addRoute');

看起来像这样:

    public function addRoute(Request $request) {
        if(Auth::check()) {
            $rules = [
                'flightDep' => 'required',
                'flightArr' => 'required',
                'flightDepTime' => 'required',
                'flightArrTime' => 'required',
            ];

            $messages = [
                'flightDep.required' => 'A departure ICAO is required',
                'flightArr.required' => 'An arrival ICAO is required',
                'flightDepTime.required' => 'A departure time is required',
                'flightArrTime.required' => 'An arrival time is required'
            ];


            $validator = $this->validate($request, $rules, $messages);

            if($validator->fails()) {
                return redirect('admin/routemanagement')->withErrors($validator)->withInput();
            }
     }

但是,当此代码运行时,$validator 变量由于某种原因最终为 null,我得到以下信息:

Call to a member function fails() on null

【问题讨论】:

    标签: php validation laravel-5


    【解决方案1】:

    来自 Laravel 文档:

    "...如果验证失败,将自动生成正确的响应。如果验证通过,我们的控制器将继续正常执行。" (https://laravel.com/docs/5.2/validation)

    所以这里下面的代码是不必要的:

    if($validator->fails()) {
                return redirect('admin/routemanagement')->withErrors($validator)->withInput();
            }
    

    如果验证失败,Laravel 会自动响应,如果验证成功,则其余代码将正常执行。

    【讨论】:

      【解决方案2】:

      而不是这个默认验证

      $validator = $this->validate($request, $rules, $messages);
      

      您可以使用自定义验证

      $validator = Validator::make($request->all(), [ // <---
                  'title' => 'required|unique:posts|max:255',
                  'body' => 'required',
              ]);
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-04
        • 2016-06-29
        • 2018-04-03
        • 2021-10-06
        • 2019-06-17
        • 2020-10-22
        • 2018-02-11
        相关资源
        最近更新 更多