多对多无关系(Laravel)

时间:2018-03-09 15:45:23

标签: laravel model eloquent

我在两个不同的服务器上有两个应用程序。 在第一个Laravel应用程序中,我有用户模型,在secound应用程序中,我有博客模型

它们之间存在多对多关系,用户可以拥有多个博客,一个博客可以属于多个用户。 他们有两个不同的数据库,但在一台服务器中,所有内容都像一样构建,只有一个应用程序

他们有一个REST API,并在它们之间进行通信。问题是,我不能在它们之间建立真正的关系(比如Eloquent模型中的 belongsToMany ),我无法列出用户的博客。

有没有办法复制" User :: blogs()" 关系函数,对 Blog :: class 进行一些查询工作?对于例如选择数据透视表中user_id等于1的所有博客?

2 个答案:

答案 0 :(得分:0)

<?php
class User extends Model{
  protected $connection = 'Your Connection';

  public function blogs(){

    return $this->belongsToMany(Blog::class);
  }

}

blog.php的

class Blog extends Model{

  protected $connection = 'Your other connection';

public function users(){

    return $this->belongsToMany(User::class);
  }

}

您可以在database.php中设置多个连接,并为每个模型分配不同的连接。

我假设你有一个user_blogs表。

希望这会有所帮助。

答案 1 :(得分:0)

我找到了,就像这样:

Blog :: join('blog_user','blogs.id','=','blog_user.blog_id') - &gt; where('blog_user.user_id','=',$ this-&gt ;用户id) - &GT;得到();