Laravel Auth вручную войти по id
Я новичок в Laravel, и я работаю с функциональностью, где мы вставляем данные в таблицу пользователя с
DB::insert();
После этого я получаю последний идентификатор с
$user_id = DB::getPdo()->lastInsertId();
Теперь я хочу, чтобы пользователь вошел после регистрации, и я пытаюсь
Auth::loginUsingId($user_id);
Но это возвращает меня ложь. Я тоже пробовал
$user = User::find($user_id);
Auth::login($user);
Его также возвращает null $user.
Пожалуйста помоги...
4 ответа
Логин пользователя:
Auth::login($user);
проверьте, является ли текущий пользователь логином или нет:
Auth::check();
Auth:login
возвращается void
так что вы можете попробовать что-то вроде этого, чтобы проверить, вошел ли пользователь в систему или нет:
Auth::login($user);
return [
'status' => Auth:check()
];
check()
определить, аутентифицирован ли текущий пользователь или нет.
Итак, вы можете показать свою модель пользователя?
В Документах Laravel ( https://laravel.com/docs/5.7/authentication) вы можете видеть, что ваша модель должна быть реализацией контракта Illuminate\Contracts\Auth\Authenticatable.
Базовая модель User выглядит следующим образом:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
и это ожидалось.