Add error for validation errors using formRequest

I am trying to figure out how to add an error message to the default value $errorgenerated Illuminate\Support\MessageBagwhen using validation requests.

I searched on google and laravel docs and did not find any information clarifying this for me.

Authcontroller

<?php
namespace App\Http\Controllers\Auth;

use Auth;
use App\User;
use App\Http\Requests\LoginFormRequest;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

/*
 * AuthController
 */
class AuthController extends Controller {
    /*
     * Create view
     *
     * @return View
     */
    public function getLogin() {
        return view('auth.login');
    }

    /*
     * Validate Login
     *
     * @return Redirect route
     */
    public function postLogin(LoginFormRequest $request) {
        if (Auth::attempt(array('email' => $request->email, 'password' => $request->password), $request->remember)) {
            return redirect()->intended('home')->with('success-message', 'Succesfully authenticated');
        } else {
            $validator->addMessage('Incorrect email and password combination');
            return redirect('account.login')->withErrors($validator)->withInput();
        }
    }
}

LoginFormRequest

<?php 

namespace App\Http\Requests;

use Response;
use Illuminate\Foundation\Http\FormRequest;

class LoginFormRequest extends FormRequest {

    public function rules() {
        return array(
            'email'    => 'required|email',
            'password' => 'required|between:8,20'
        );
    }

    public function authorize() {
        return true;
    }
}

Hope someone ran into this problem earlier and can help me!

+4
source share
2 answers

Just add a function messsages()to the class LoginFormRequest:

public function messages()
{
    return array(
        'email.required' => 'The email address is required.',
        'password.required' => 'The password is required.',
        'password.between' => 'The password should be between 8 and 20 characters.',
    );
}

Using dot notation, you first specify the field, and then the type of validator.

+3
source
$validator->getMessageBag()->add('password', ''Username and/or password don't match);

An error will be added for this field.

+1

Source: https://habr.com/ru/post/1609823/


All Articles