请问$connection 可以通过函数获取然后设置值吗?

位置:.\app\models
Capture.JPG


代码如下:

<?php

use Illuminate\Database\Eloquent\SoftDeletingTrait;

class ELog extends \Eloquent {
protected $fillable = [];

protected $connection = 'mysqlxxx1';//此处可以通过函数获取然后赋值吗?我试了一下,不行呢

protected $table = 'elogs';

protected $dates = ['deleted_at'];
}
已邀请:

dozhan

赞同来自:

需求是, 不同的管理员,要管理不同的数据库里的内容,但是每个数据库表一样,只是数据不同罢了。

xlimit

赞同来自:

setConnection(string $name)

dozhan

赞同来自:

sss.JPG


我也觉得这个方法或许可以,怎么弄呢??

setConnection(string $name)?????

xlimit

赞同来自:

在config/database.php的connections中增加一个配置,如下:
'mysql2' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => '数据库名',
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

这个配置你根据需要改一下,
mysql2这个名字随意,只要不和别的键冲突。

方法1
例如有一个用户模型
class User extends Model
{
。。。。
}

$user = new User();
$user->setConnection('mysql2');
$user->get();

方法2
class User extends Model
{
protected $connection = 'mysql2';
}

方法3
User::on('mysql2')->all();

要回复问题请先登录注册