Я создал все представления и маршруты с помощью команды php artisan make:auth
Теперь хочу узнать id авторизованного пользователя при помощи Auth::user()->id
. В другом проекте всё работает нормально. В нынешнем вылетает ошибка
При успешной авторизации меня редиректит на /home на данной странице всё хорошо и я вижу выводимый идентификатор, если я её обновляю, то меня выкидывает опять на страницу авторизации. Если перехожу на другую страницу, то выдаёт ошибку:
Undefined variable: user (View: C:\OpenServer\domains\laravel\resources\views\layouts\app.blade.php) (View: C:\OpenServer\domains\laravel\resources\views\layouts\app.blade.php)
сам код:
if (Auth::check()) {
$user = Auth::user()->name;
echo $user;
}
этот код я пишу прям во вьюшке. Знаю, что так не правильно, но я только учу laravel. Но мне интересно, почему тот же самый код в другом проекте работает, а тут нет
UPD. var_dump(Auth::user());
показывает следующее:
object(App\User)#221 (26) {
["fillable":protected]=>
array(3) {
[0]=>
string(4) "name"
[1]=>
string(5) "email"
[2]=>
string(8) "password"
}
["hidden":protected]=>
array(2) {
[0]=>
string(8) "password"
[1]=>
string(14) "remember_token"
}
["connection":protected]=>
string(5) "mysql"
["table":protected]=>
NULL
["primaryKey":protected]=>
string(2) "id"
["keyType":protected]=>
string(3) "int"
["incrementing"]=>
bool(true)
["with":protected]=>
array(0) {
}
["withCount":protected]=>
array(0) {
}
["perPage":protected]=>
int(15)
["exists"]=>
bool(true)
["wasRecentlyCreated"]=>
bool(false)
["attributes":protected]=>
array(8) {
["id"]=>
int(1)
["name"]=>
string(25) "Сергей Байков"
["email"]=>
string(16) "admin@sbaikov.ru"
["password"]=>
string(60) "$2y$10$CjckWp0Bz5Hl1FnY96QQmO181QZNgedHzN0upwBnvgz7NCZ5hoVl2"
["remember_token"]=>
string(60) "6GSOvXz9Ml264tOljv6YR6w1VQV4DH3PsOikFTMa683lnHCas95Sah7bKib8"
["created_at"]=>
string(19) "2018-02-20 09:28:31"
["updated_at"]=>
string(19) "2018-02-20 09:28:31"
["status"]=>
string(5) "admin"
}
["original":protected]=>
array(8) {
["id"]=>
int(1)
["name"]=>
string(25) "Сергей Байков"
["email"]=>
string(16) "admin@sbaikov.ru"
["password"]=>
string(60) "$2y$10$CjckWp0Bz5Hl1FnY96QQmO181QZNgedHzN0upwBnvgz7NCZ5hoVl2"
["remember_token"]=>
string(60) "6GSOvXz9Ml264tOljv6YR6w1VQV4DH3PsOikFTMa683lnHCas95Sah7bKib8"
["created_at"]=>
string(19) "2018-02-20 09:28:31"
["updated_at"]=>
string(19) "2018-02-20 09:28:31"
["status"]=>
string(5) "admin"
}
["casts":protected]=>
array(0) {
}
["dates":protected]=>
array(0) {
}
["dateFormat":protected]=>
NULL
["appends":protected]=>
array(0) {
}
["events":protected]=>
array(0) {
}
["observables":protected]=>
array(0) {
}
["relations":protected]=>
array(0) {
}
["touches":protected]=>
array(0) {
}
["timestamps"]=>
bool(true)
["visible":protected]=>
array(0) {
}
["guarded":protected]=>
array(1) {
[0]=>
string(1) "*"
}
["rememberTokenName":protected]=>
string(14) "remember_token"
}
Вспомнил, что в таблицу users добавил поле 'status'. При добавлении новой записи это поле заполняется автоматически на уровне СУБД, в коде ничего не делал с этим полем.
Заметил ещё одно. Если в коде убираю все упоминанияAuth::check()
, то всё хорошо и по всем вьюшкам переходит и нормально выполняются все функции, но стоит зайти потом на страницу /home, то выкидывает на страницу логина. На страницу /home могу попасть только один раз и то после авторизации.
Возможно причина в том что у вас в методе который отвечает за /home
написан код:
Auth::logout();
И при входе на страницу авторизация пропадает.
Или как вариант проверьте в .env
или в файле config/session.php
параметры:
SESSION_DRIVER=
SESSION_LIFETIME=
Возможно указано что-то не верно в них.
Попробуй поставить обратный слэш перед фасадом:
if (\Auth::check()) {
$user = \Auth::user()->name;
echo $user;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть скрипт на php (локально - работает нормально), но на сервере нетК сайту прикрутил (ssl-cloudflare)
У меня есть сайт на yii2Там есть дерево категорий, которое раскрывается
Начал осваивать composer, и сразу возник вопросДля подключения установленных библиотек, мы в начало скрипта добавляем файл composer'a autoload
API написанный с помощью SLIM раньше возвращал вопросы в Json вместо кириллицыПосле создания подключения, сразу первым запросом отправлял $stmt = $this->con->prepare("SET...