根据记录的用户数据设置连接

时间:2016-09-30 14:23:46

标签: php database laravel laravel-5.3

我在config / database.php中创建了第二个连接,并且还将创建第三个连接,想知道如何根据登录用户在这些连接之间切换。

配置/ database.php中

'connections' => [

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

        'database2' => [
            'driver' => 'mysql',
            'host' => ('localhost'),
            'port' => ('3306'),
            'database' => ('database2'),
            'username' => ('root'),
            'password' => (''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

    ],

我知道我可以通过这种方式选择我的调制解调器连接,但是你如何命名" database2 "是从登录用户中提取而不是直接在那里放置名称?

class Empresa extends Model
{
    protected $connection;

    function __construct()
    {
        return $this->connection = 'database2';
    }
}

我试着这样说,但它不起作用。

return $this->connection = Auth::user()->database;

他犯了这个错误。

  

Empresa.php第16行中的ErrorException:

     

尝试获取非对象的属性

0 个答案:

没有答案