我可以针对我的具体情况使用 Laravel 的 eloquent hasManyThrough 关系吗?
Can I use Laravel's eloquent hasManyThrough relationship for my specific case?
我正在尝试从与我当前使用的模型没有直接关系的 table 中检索数据。
我的数据结构:
Table: posts
- id - 整数
- 标题 - 字符串
Table: post_stacks
- id - 整数
- post_id - 整数
- stack_id - 整数
Table:堆叠
- id - 整数
- body - 字符串
- url - 字符串
我的 eloquent 模型来自 Post.php (posts table),我正在尝试获取与我的 [=66= 关联的所有堆栈](来自堆栈 table)。我只想在 Post.php 而不是我的枢轴 table (post_stacks) 上声明我的关系。我尝试使用 hasManyThrough 但我无法让它工作?
public function img()
{
return $this->hasManyThrough(\App\Stack::class, \App\PostStack::class, 'post_id', 'stack_id', 'id');
}
有人知道我怎样才能检索到我想要的数据吗?谢谢!
你能尝试在你的帖子模型中添加以下关系吗?
public function stacks()
{
return $this->hasManyThrough(
'App\Stacks', 'App\PostStacks',
'post_id', 'id', 'id'
);
}
也看看这个,https://laravel.com/docs/5.4/eloquent-relationships#has-many-through
根据此文档,hasManyThrough
中的第三个参数是中间模型上的外键名称。在我们的例子中 'post_id'
是 post_stack
上的外键,它与 posts
.
有直接关系
第四个参数是最终模型的外键名称。即,'id'
在 stacks
上。与 post_stacks
( 'post_id' )
有关系。第五个参数是本地密钥。即,id
个帖子
我正在尝试从与我当前使用的模型没有直接关系的 table 中检索数据。
我的数据结构:
Table: posts
- id - 整数
- 标题 - 字符串
Table: post_stacks
- id - 整数
- post_id - 整数
- stack_id - 整数
Table:堆叠
- id - 整数
- body - 字符串
- url - 字符串
我的 eloquent 模型来自 Post.php (posts table),我正在尝试获取与我的 [=66= 关联的所有堆栈](来自堆栈 table)。我只想在 Post.php 而不是我的枢轴 table (post_stacks) 上声明我的关系。我尝试使用 hasManyThrough 但我无法让它工作?
public function img()
{
return $this->hasManyThrough(\App\Stack::class, \App\PostStack::class, 'post_id', 'stack_id', 'id');
}
有人知道我怎样才能检索到我想要的数据吗?谢谢!
你能尝试在你的帖子模型中添加以下关系吗?
public function stacks()
{
return $this->hasManyThrough(
'App\Stacks', 'App\PostStacks',
'post_id', 'id', 'id'
);
}
也看看这个,https://laravel.com/docs/5.4/eloquent-relationships#has-many-through
根据此文档,hasManyThrough
中的第三个参数是中间模型上的外键名称。在我们的例子中 'post_id'
是 post_stack
上的外键,它与 posts
.
第四个参数是最终模型的外键名称。即,'id'
在 stacks
上。与 post_stacks
( 'post_id' )
有关系。第五个参数是本地密钥。即,id
个帖子