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());
Kernel.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
答案 0 :(得分:0)
我认为你在Controller中做错了
public function store(Request $request)
{
// dd($request);
$this->validate($request,[
'name' => 'required',
'email' => 'required',
'message' => 'required'
]);
Session::flash('success','Successfully saved');
}
在您的View create.blade.php文件中
@if(Session::has('success'))
<div class="alert alert-success" role="alert">
<strong>Success::</strong> {{ Session::get('success') }}
</div>
@endif
@if(count($errors) > 0)
<div class="alert alert-danger">
<strong>Errors:</strong>
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif