首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多到多的关系中,如何正确地检索拉拉数据?

在多到多的关系中,如何正确地检索拉拉数据?
EN

Stack Overflow用户
提问于 2014-11-25 14:10:17
回答 2查看 44关注 0票数 0

我和一张枢轴表有很多关系。

货物,货物

代码语言:javascript
复制
id | title | ...

标签

代码语言:javascript
复制
id | title | ...

good_tag

代码语言:javascript
复制
id | good_id | tag_id | ...

如何正确地取回所有货物及其标签?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-25 14:38:42

带着急切的负载

代码语言:javascript
复制
$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;
    }
}

每个返回的好模型将有它的标签的集合。

医生-雄辩的-热切的加载

票数 0
EN

Stack Overflow用户

发布于 2014-11-25 15:44:05

好的,首先让我们在您的模型中编写关系:

良好模型(表示货物表)

代码语言:javascript
复制
public function getTags()
{
    return $this->belongsToMany('Tag','good_tag','good_id','tag_id');
}

标记模型(表示标签表),这是反向关系,以获取特定标签的商品

代码语言:javascript
复制
public function getGoods()
{
    return $this->belongsToMany('Good','good_tag','tag_id','good_id');
}

现在要检索所有商品及其标签,下面是代码:

代码语言:javascript
复制
    $goods=Good::All();  
    foreach($goods as $good)
    {
        echo $good->title;
        echo "Tags: ";
        foreach($good->getTags as $tag)
        {
            echo $tag->title." ";
        }

    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27128923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档