验证失败时,错误不会显示

时间:2017-10-01 19:19:20

标签: php laravel validation

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

1 个答案:

答案 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
相关问题