Laravel-通过两个数据透视表检索集合

时间:2018-08-21 14:55:10

标签: php laravel eloquent table-relationships

我目前在Laravel 5.6中遇到以下问题,比如说我有以下数据库表:

  1. 网站(例如id | name)
  2. 网站提供者(例如id | website_id | provider_id)
  3. 提供者帖子(例如id | provider_id | post_id | post_name)
  4. 帖子(例如id | name)

我正在寻找一种基于网站ID检索帖子的好方法。一个网站可以(通过website_providers)被分配多个提供者,提供者可以被分配多个帖子(他们也可以提供一个自定义的post_name来取代标准的posts.name)。

在Laravel中实现此目标的最佳方法是什么?我已经尝试通过关系来做到这一点,但不能使其顺利进行。我还尝试使用相当长的联接查询来加载帖子,但是感觉不对,必须有一种更简单,更漂亮的方式。

谢谢!

1 个答案:

答案 0 :(得分:2)

在这种情况下没有本机关系。

我创建了def diag_slice(x, start, end): n_rows = min(*x.shape)-end+1 columns = [x.diagonal(i)[:n_rows, None] for i in range(start, end)] return np.hstack(columns) In [37]: diag_slice(x, 1, 3) Out[37]: array([[7, 3], [5, 7], [3, 2]]) 关系,并支持HasManyThroughRepository on GitHub

安装后,您可以像这样使用它:

BelongsToMany