синтаксическая ошибка в пользовательской модели — динамические имена таблиц — Laravel

#php #database #session #symfony #laravel

#php #База данных #сессия #symfony #laravel

Вопрос:

Я пытаюсь настроить это так, чтобы моя пользовательская модель обращалась к другой таблице в зависимости от того, из какой организации пользователь. Сеанс устанавливается непосредственно перед вызовом функции auth attempt, и я точно знаю, что он содержит значение на момент его использования. Я понятия не имею, почему я получаю здесь синтаксическую ошибку, для меня все выглядит нормально (с точки зрения синтаксиса).

У меня это есть в моей пользовательской модели

 public $table = Session::get('council').'_data';
  

и я получаю эту ошибку:

 Symfony  Component  Debug  Exception  FatalErrorException

syntax error, unexpected '(', expecting ',' or ';'
  

Ответ №1:

public $table — это атрибут класса, попробуйте установить его содержимое внутри метода класса.

 public function my_method(){
    $this->table = Session::get('council').'_data';
}
  

Комментарии:

1. Я действительно не могу этого сделать, потому что я понятия не имею, где создается объект user в процессе входа в систему, поэтому я не могу вызвать этот метод, не имея сначала объекта User, который будет использоваться для авторизации пользователя.

2. общедоступная функция __construct() { $this-> table = Session::get(‘council’).’_data’; } Я просто добавил ее в конструкцию пользовательской модели, и все это работает отлично. Спасибо, gadz82, ты указал мне правильное направление.