войдите в систему пользователя, имя которого отличается от имени поля таблицы - PullRequest
0 голосов
/ 05 мая 2020

У меня есть вопрос. Я пытаюсь войти в систему с псевдопаролем в моей таблице, поле - «псевдо», но в моей форме имя ввода - это имя пользователя, вот мой код для входа в систему моего пользователя

protected function login(Request $request){

    $credentials = $request->only('username', 'password');
    if (Auth::attempt($credentials)) {
        dd('hello');
        // Authentication passed...
        return redirect()->$this->redirectTo();
    }
    else{

    }

}

и моя модель пользователя

class User extends Authenticatable
{
    use Notifiable;

    protected $table = 'users';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'pseudo', 'mail', 'password','active','confirm_password'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];

    public function games(){
        return $this->belongsTo('App\Game');
    }

}

Если я переименую свое входное имя = имя пользователя в входное имя = псевдо, он работает, но я хотел сохранить свое входное имя с именем пользователя

            <div class="form-item form-group">
                <input name="username" id="username" type="text" value="" placeholder="Pseudo" required>
            </div>
            <div class="form-item form-group">
                <input name="password" id='password' type="password" value="" placeholder="Mot de passe" required>

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

можно сделать так:

$username = $request['username'];
$request['psuedo'] = $username;

$credentials = $request->only('psuedo', 'password');
0 голосов
/ 05 мая 2020

Попробуйте перезаписать метод username ()

public function username(){
   return 'pseudo';
}

, а затем ваш ввод изменит ввод «username» на «псевдо»

<div class="form-item form-group">
            <input name="pseudo" id="pseudo" type="text" value="" placeholder="Pseudo" required>
        </div>

не забудьте отредактировать метод login () а также

$credentials = $request->only('pseudo', 'password');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...