У меня есть проект Laravel с некоторой моделью, которая была указана для внешних баз данных (из Magento).На конструкторе этой модели я хочу проверить переменную сеанса, чтобы изменить подключение модели к выбору пользователя.Одна из проверок должна состоять в том, что пользователь выбрал какую-то внешнюю платформу для подключения к ней, если нет, я хочу перенаправить на страницу выбора.Я пытаюсь с этим избежать истечения сеанса и ручного написания маршрута (без выбора платформы).
Как я могу перенаправить пользователя на определенную страницу в конструкторе модели?
Основная модель
class MagentoModel extends Model
{
protected $platform;
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->platform = app('selectedPlatform');
if ($this->platform->id < 1) {
return redirect()->route('index');
// Maybe I have to use Redirect::route('index');
}
}
}
Некоторая модель, расширяющая MagentoModel
class Customer extends MagentoModel
{
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->connection = $this->platfom->connection_key;
$this->table = config('customersTable');
}
}
Выдает ошибку прямо сейчас:
Пытается получить свойство 'connection_key' не-объекта
Я полагаю, что родительский конструктор (MagentoModel) не выполняется перед строкой $this->connection = $this->platfom->connection_key;
.Возможно, мое понимание ООП неправильно в этом случае.