多对多关系无法跨数据库工作(Laravel 5.2)

时间:2017-10-14 12:23:43

标签: php database laravel laravel-5.2

我正在尝试使用两个数据库/连接开发一个新的laravel 5.2应用程序 在app / config / database中指定我的默认连接

 'default' => 'connection-one',

两个数据库之间的正常一对一关系正在按预期工作。

但问题在使用多对多关系时开始

假设我有两个模型Post和Category

一个帖子有很多类别,一个类别属于很多帖子

发布模型:

class Post extends Model
{
   public function categories()
   {
      return $this->belongsToMany('App/Category');
   }    
}

类别模型

class Category extends Model
 {
   public function posts()
   {
      return $this->belongsToMany('App/Post');
   }    
}

模型中间体:

class CategoryPost extends Model
 {
   protected $connection = 'connection-two';
   protected $table = 'category_post_table';    
}

现在在迁移中,laravel创建了三个表(posts,categories和category_post)

这个想法是在第一个数据库中创建帖子和类别表(默认连接),并在第二个数据库中创建category_post表。

laravel在他们的地方创建了这个表,但是当我想用eloquent检索数据时,laravel假设表category_post存在于第一个数据库中并且在找不到表时显示错误。

如何在第二个数据库的table category_post中进行laravel搜索。

1 个答案:

答案 0 :(得分:0)

多个数据库不支持laravel关系。原因是laravel关系被转换为sql查询。