我与数据透视表有很多关系。
产品
id | title | ...
标签
id | title | ...
good_tag
id | good_id | tag_id | ...
如何正确检索laravel中的所有商品及其标签?
由于
答案 0 :(得分:1)
好的,首先让我们在模型中写下关系:
好模型(代表货物表)
public function getTags()
{
return $this->belongsToMany('Tag','good_tag','good_id','tag_id');
}
标签模型(代表标签表),这是获取特定标签商品的反向关系
public function getGoods()
{
return $this->belongsToMany('Good','good_tag','tag_id','good_id');
}
现在检索所有商品及其标签的代码是:
$goods=Good::All();
foreach($goods as $good)
{
echo $good->title;
echo "Tags: ";
foreach($good->getTags as $tag)
{
echo $tag->title." ";
}
}
答案 1 :(得分:0)
急切加载
$goods = Good::with('tags')->get();
foreach ($goods as $good) {
// each goods
echo $good->title;
foreach ($good->tags as $tag) {
// each tag for that goods
echo $tag->title;
}
}
每个返回的Good模型都会附加标签集。