Displaying the Error Messages in Laravel after being Redirected from controller

后端 未结 9 1130
情书的邮戳
情书的邮戳 2020-12-13 01:44

How can I display the validation message in the view that is being redirected in Laravel ?

Here is my function in a Controller

publi         


        
相关标签:
9条回答
  • 2020-12-13 02:11
    $validator = Validator::make($request->all(), [ 'email' => 'required|email', 'password' => 'required', ]);
    
    if ($validator->fails()) { return $validator->errors(); }
    
    0 讨论(0)
  • 2020-12-13 02:11

    This is also good way to accomplish task.

    @if($errors->any())
      {!! implode('', $errors->all('<div class="alert alert-danger">:message</div>')) !!}
    @endif
    

    We can format tag as per requirements.

    0 讨论(0)
  • 2020-12-13 02:14

    Move all that in kernel.php if just the above method didn't work for you remember you have to move all those lines in kernel.php in addition to the above solution

    let me first display the way it is there in the file already..

    protected $middleware = [
    
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    ];
    
    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \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,
        ],
    
        'api' => [
            'throttle:60,1',
        ],
    ];
    

    now what you have to do is

    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,
    ];
    
    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
    
        ],
    
        'api' => [
            'throttle:60,1',
        ],
    ];
    

    i.e.;

    0 讨论(0)
  • 2020-12-13 02:17

    If you want to load the view from the same controller you are on:

    if ($validator->fails()) {
        return self::index($request)->withErrors($validator->errors());
    }
    

    And if you want to quickly display all errors but have a bit more control:

     @if ($errors->any())
         @foreach ($errors->all() as $error)
             <div>{{$error}}</div>
         @endforeach
     @endif
    
    0 讨论(0)
  • 2020-12-13 02:18

    Laravel 4

    When the validation fails return back with the validation errors.

    if($validator->fails()) {
        return Redirect::back()->withErrors($validator);
    }
    

    You can catch the error on your view using

    @if($errors->any())
        {{ implode('', $errors->all('<div>:message</div>')) }}
    @endif
    

    UPDATE

    To display error under each field you can do like this.

    <input type="text" name="firstname">
    @if($errors->has('firstname'))
        <div class="error">{{ $errors->first('firstname') }}</div>
    @endif
    

    For better display style with css.

    You can refer to the docs here.

    UPDATE 2

    To display all errors at once

    @if($errors->any())
        {!! implode('', $errors->all('<div>:message</div>')) !!}
    @endif
    

    To display error under each field.

    @error('firstname')
        <div class="error">{{ $message }}</div>
    @enderror
    
    0 讨论(0)
  • 2020-12-13 02:20

    to Make it look nice you can use little bootstrap help

    @if(count($errors) > 0 )
    <div class="alert alert-danger alert-dismissible fade show" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">&times;</span>
        </button>
        <ul class="p-0 m-0" style="list-style: none;">
            @foreach($errors->all() as $error)
            <li>{{$error}}</li>
            @endforeach
        </ul>
    </div>
    @endif
    
    0 讨论(0)
提交回复
热议问题