laravel完美实现跨数据库关联查询

关联查询也可以作为强大的查询构造器使用,提供了强大的链式调用和查询功能。在laravel中使用model,有几种关联:

  • 一对一
  • 一对多
  • 一对多(反向)
  • 多对多
  • 远层一对多
  • 多态关联
  • 多对多多态关联

因为某些需求,我们需要使用到跨库关联查询.一开始以为model的$connection属性能起到作用。但是其实比没有起到作用

我们正常的关联代码是(无法跨库):

public function templates() { 
    return $this->belongsTo('App\Models\Power\Organization\Template', 'store_id');
}

跨数据库关联查询:

public function templates() 
{ 
    $instance = new StoreTemplate; // new 实例
    $instance->setTable('store_power.store_template'); // 设置该实例的表。store_power是我的另一个数据库
    $query =$instance->newQuery(); 
    return new BelongsTo($query,$this,'id','store_id',null); // BelongsTo是laravel自带类
}

 

你可能感兴趣的:(laravel)