【发布时间】:2017-10-01 19:19:20
【问题描述】:
dump($request->all()); 函数不执行如果验证失败。相反,我已经重定向到上一页。没关系。但是...没有出现错误列表,并且 html 代码中缺少 <div class="alert alert-danger"> 行。会话开始,我在 cookie 中看到 laravel_session。为什么条件@if (count($errors)>0) 不执行?
GuestController.php
class GuestController extends Controller
{
// Add comments
public function store(Request $request){
$rules = [
'name' => 'required',
'email' => 'required',
'message' => 'required'
];
$this->validate($request, $rules);
dump($request->all());
内核.php
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
];
布局中的片段
@if (count($errors)>0)
<div class="alert alert-danger">
<ul >
@foreach($errors->all() as $error)
<li> {{ $error }} </li>
@endforeach
</ul>
</div>
@endif
【问题讨论】:
-
你用的是哪个 Laravel 版本
-
@lewis4u,我用的是5.5.3版本
-
请正确格式化您的问题
-
向我们展示您重定向回来的代码。你可能错过了
->withErrors($validator->errors()) -
这不是 Laravel 5.5.3 版... 默认情况下,您的中间件数组应如下所示: protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \Illuminate \Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \App\Http\Middleware\TrustProxies::class, ];
标签: php laravel validation