如何在Laravel中动态设置模型的连接属性?

时间:2017-01-31 01:58:01

标签: php laravel

我有一个Laravel 5.1应用程序,我可以动态设置模型的连接属性:

class Config extends Model {

public function __construct() {
    $this->connection = Session::get('conn') or abort(500, 'No conn');
}

protected $table = 'config';
}

但是在Laravel 5.3+中,我们无法在构造函数方法中访问会话而无需hack框架。

在模型上执行此操作的最佳/推荐方法是什么?

更新 这段代码实际上有效,我的问题出在Controller级别而不是Model。

2 个答案:

答案 0 :(得分:1)

使用全局会话助手

 $this->connection = session('conn') or abort(500, 'No conn');

答案 1 :(得分:1)

效果很好。

使用外观

导入

use Illuminate\Support\Facades\Session;

然后你可以像

一样打电话
public function __construct() {
    $this->connection = Session::get('conn') or abort(500, 'No conn');
}

使用辅助功能

public function __construct() {
    $this->connection = session('conn') or abort(500, 'No conn');
}