我试图让使用不同的连接模式的关系,基本上我的连接是动态的。Laravel关系数据库连接
$con = 'con1'
$persons = new \App\Models\Person;
$persons->setConnection($con);
$persons = $persons->where('somevalue', 1)->get()
所以在这里我得到的人从CON1(其中con 1的存储在配置/ databse.php 它可以是CON2,CON3,CON4等
但是这个工作,但是当我试图通过这个数据环路,并得到关系切换到默认的数据库连接。
@foreach($persons as $person)
{{$person->data->name}}
@endforeach
在上面的循环data
是在角色模型一个属于关联关系的船,因为它切换回默认的数据库连接的,它抛出错误□不使用CON1
It is possible to setConnection() and keep for hasMany relationship and also for belongsTo relationship?
我不能设置protected $connection;
的模型,因为连接是changble
我试过直到现在我创建了一个absctract类extendseloquent,和我的模型扩展这个抽象类
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model as Eloquent;
abstract class Database extends Eloquent {
protected $connection;
}
<?php
namespace App\Models;
use App\Models\Database as Database;
class Person extends Database{
protected $table = 'persons';
}
所以theoritically当我setConnection
我设置连接到所有型号的扩展了这个class
但仍然没有运气。
它不能这样做,因为它试图加入这些表。没有办法在不同的连接上连接表。 – user3158900
@ user3158900 Laravel关系不使用连接。理论上这是可能的,但是代码是否允许它仍然需要一些研究。 – patricus