Intereting Posts
Установление подключения к базе данных в php с использованием одноэлементного класса Почему этот код не просто печатает буквы от A до Z? Когда выполняется preg_match (): Неизвестная ошибка модификатора? PHP отображает только первое значение в цикле for () intinde другого цикла foreach () Страница на использовала небезопасный контент из в хроме Хранение HTML-файлов, отделенных от файлов PHP (на основе шаблонов) переменные сеанса и база данных как я могу читать файлы редактирования pptx / docx / xlsx с помощью PHP? php – настройка для часовых поясов php – обновить sql-оператор с краткими строками Ошибка авторизации Godaddy api PHP CURL, похоже, игнорирует файл cookie cookie Как получить доступ к переменной с одной страницы PHP на другую, без формы, ссылки или кнопки? Что является лучшим prctice для использования безопасности в JAX-WS Mysql: запрос обнаружения разрыва не обнаруживает пробелы

Функция Auth :: попытка () Laravel возвращает true, но Auth :: check () возвращает false

Как гласит название, функция Laravel Auth::attempt() возвращает true в следующем разделе кода (с несущественными деталями):

 public function doLogin() { $validator = [..] if ($validator->fails()) { [..] } else { $userdata = array( 'username' => Input::get('username'), 'password' => Input::get('password') ); if (Auth::attempt($userdata, true)) { return Redirect::to('/'); } else { return Redirect::to('login'); } } } 

Но когда мы перенаправлены, мы пытаемся проверить, действительно ли пользователь зарегистрирован в Auth::check() , и он как-то возвращает false .

Мы пробовали все возможные решения в Google и не добились успеха ни с одним из них. Например, мы добавили remember_token но ничего не изменили, хотя доказали, что Auth::attempt() что-то делает, потому что remember_token установлен в базе данных.

В крайнем случае мы даже пытались напечатать что-то в методе Auth::attempt() Laravel в ./vendor/laravel/framework/src/Illuminate/Auth/Guard.php но мы ничего не увидели, а не даже с print_r . Мы попытались найти другие попытки-функции в полной базе кода, но никто не найден.

Возможно, что-то об изменении User в переведенной форме делает его сломанным, но тогда функция Auth::attempt() также должна быть сломана, возможно.

Кажется, что происходит что-то действительно волшебное, но мы понятия не имеем, что и как. Есть ли у кого-нибудь еще идея?

По умолчанию Laravel предполагает, что каждая таблица имеет первичный ключ с именем id.

Возможное решение – сделать это в вашей модели:

 protected $primaryKey = 'id'; //Or what ever id name do you have. 

Эта ошибка может возникнуть, если вы пытаетесь использовать laravel-mongodb с пользовательским приращением и уникальным сгенерированным идентификатором, а не по умолчанию _id от MongoDB. Решение в этом случае не должно указывать ваш пользовательский идентификатор, как этот «id», потому что это сделает Laravel запутанным. Однако назовите это чем-нибудь еще.