2017-09-21 29 views
0

我正在为Laravel使用chatter包。但是在验证时出现错误。没有错误包发送到刀片。 这是代码:Laravel Cant将错误验证传递给刀片服务器

$validator = Validator::make($request->all(), [ 
     'title'    => 'required|min:5|max:255', 
     'body_content'  => 'required|min:10', 
     'chatter_category_id' => 'required', 
    ]); 

    if ($validator->fails()) { 

     return back()->withErrors($validator)->withInput(); 
    } 

刀片:

@if (count($errors) > 0) 
    <div class="chatter-alert alert alert-danger"> 
     <div class="container"> 
      <p><strong><i class="chatter-alert-danger"></i> {{ Config::get('chatter.alert_messages.danger') }}</strong> Please fix the following errors:</p> 
      <ul> 
       @foreach ($errors->all() as $error) 
        <li>{{ $error }}</li> 
       @endforeach 
      </ul> 
     </div> 
    </div> 
@endif 

内核:

protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
    \App\Http\Middleware\EncryptCookies::class, 
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
    \Illuminate\Session\Middleware\StartSession::class, 
    \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
    \App\Http\Middleware\VerifyCsrfToken::class, 

]; 
每次我试图DD叶片中的$错误时间

,总有空袋。
注意:每个验证工作正常,但不是这一个

+0

您有反馈吗? –

+0

不,输入也不会显示 –

+0

尝试'dd(Session :: all());'在'vendor/laravel'这一行https://github.com/laravel/framework/blob/5.5/src/Illuminate /Http/RedirectResponse.php#L144 –

回答

0

试试这一个家伙。

控制器

$this->validate(
      $request, 
      [ 
       'title'    => 'required|min:5|max:255', 
       'body_content'  => 'required|min:10', 
       'chatter_category_id' => 'required', 
      ] 
     ); 

如果验证失败,是它会自动返回到以前的视图。

查看

@if (count($errors) > 0) 
    <div class="chatter-alert alert alert-danger"> 
     <div class="container"> 
      <p><strong><i class="chatter-alert-danger"></i> {{ Config::get('chatter.alert_messages.danger') }}</strong> Please fix the following errors:</p> 
      <ul> 
       @foreach ($errors->all() as $error) 
        <li>{{ $error }}</li> 
       @endforeach 
      </ul> 
     </div> 
    </div> 
@endif 
+0

两者之间没有这样的区别,它们都不能工作,或者它们都必须工作...... –

+0

我认为你的中间件有冲突。尝试调试它。 – Kenneth

1

评论了这一点

// \Illuminate\Session\Middleware\StartSession::class, 

并确保你在你的航线网络中间件。

Route::group(['middleware' => 'web'], function() { 
     // Your routes 
});