我有一个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”
我假设在行$this->connection = $this->platfom->connection_key;
之前没有执行父构造函数(MagentoModel)。在这种情况下,我对OOP的理解可能不正确吗?