美文网首页
关于laravel5.2中表单验证validator中的$err

关于laravel5.2中表单验证validator中的$err

作者: MakingChoice | 来源:发表于2016-09-13 17:07 被阅读2018次

最近在做一个项目,突然想到了一个error使用的问题,一起没有关注,一想还是有很多坑的,又把laravel中的相关源码读了一下,发现相关内容还挺多,又在stackoverflow上查了一下,终于解决了问题。下面先说一下两种返回$errors的方法。

两种方法都是在RegistersUsers文件中的register中更改

 public function register(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {//这是默认的写法,验证失败返回错误信息
           $this->throwValidationException(
                $request, $validator
           );
        }

        Auth::guard($this->getGuard())->login($this->create($request->all()));

        return redirect($this->redirectPath());
    }
 public function register(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {  //手动的添加错误        
            return redirect('/create')
                ->withErrors($validator)
                ->withInput();
        }
        Auth::guard($this->getGuard())->login($this->create($request->all()));
        return redirect($this->redirectPath());
    }

但是问题就是在laravel5.2中默认配置的$errors是不显示的,需要更改配置,下面给出解决方法。<p>
(1)首先用<code>Route::group(['middleware' =>['web'] ],function(){})</code>,包裹路由。

(2)第二步就涉及到好几种方法,具体如何移动,可以试一试,我也不直达用哪个。

<1>在kernel.php文件中把<code>\Illuminate\View\Middleware\ShareErrorsFromSession::class</code>移动到<code>protected $middleware</code>中。

<2>整体的把<code>protected $middlewareGroups</code>移动到<code>protected $middleware = []</code>中。

<3>把<code>\Illuminate\Session\Middleware\StartSession::class,\Illuminate\View\Middleware\ShareErrorsFromSession::class,</code>移动到<code>protected $middleware = []</code>中。

下面是stackoverflow地址,可以看看。

相关文章

网友评论

      本文标题:关于laravel5.2中表单验证validator中的$err

      本文链接:https://www.haomeiwen.com/subject/boimettx.html