#laravel #laravel-5
#laravel #laravel-5
Вопрос:
Я хочу переопределить один метод в laravel 5.4
src/Illuminate/Auth/SessionGuard.php
public function id()
{
if ($this->loggedOut) {
return;
}
return $this->user()
? $this->user()->getAuthIdentifier()
: $this->session->get($this->getName());
}
измените на это
public function id()
{
if ($this->loggedOut) {
return;
}
return $this->user()
? $this->user()->user_id
: $this->session->get($this->getName());
}
я просто хочу изменить $this-> user()-> getAuthIdentifier() на это $this-> user()-> user_id
почему я это делаю, потому что я получаю пользователя из внешнего API, и я не хочу использовать базу данных, я могу сделать это, перейдя в фреймворк и изменив там, но я хочу знать, лучший способ переопределить аутентификацию laravel по умолчанию
Ответ №1:
Или вы могли бы просто переопределить getAuthIdentifier()
функцию в вашей пользовательской модели и вернуть user_id
свойство.
public function getAuthIdentifier()
{
return $this->user_id;
}
Комментарии:
1. я уже пробовал это, но по какой-то причине он не обращается к методу, но я могу получить доступ вот так «$this-> user_id», но не так «$this-> user()-> getAuthIdentifier()» в SessionGurad.php когда я отлаживаю
2. я получаю эту ошибку При вызове неопределенного метода stdClass::getAuthIdentifier () я могу получить доступ к пользовательским данным точно так же, как обычный класс, но не могу получить доступ к его методам, они общедоступны, К вашему сведению @jerodev