从Laravel中的belongsToMany关系中检索数据

时间:2016-06-02 08:22:18

标签: laravel pivot has-and-belongs-to-many

从我的关系中获取数据时遇到一些问题。我需要一些域名的标签。

$domains = Domains::where('customer_id', Auth::user()->customers_id)->get();

我需要的所有域名。在我的域名模型中,我将此属性与我的数据透视表关联。

public function tags() { 
    return $this->belongsToMany('App\Models\Tags_Domains', 'domain_tag', 'domains_id', 'tags_id'); 
}

我能够从我的关系中得到所有数据:

dd($domains[0]->tags);

这给了我所需的所有数据,但仅限于第一个域。但我希望每个域都有这个,将这个新数组传递给我的Blade模板。我尝试了很多东西,却无法使它发挥作用。 ($ collection error,试图正确获取非对象......)

有人可以帮助我吗?

控制器代码:

    $domains = Domains::where('customer_id', Auth::user()->customers_id)->get();
    return view('defaultLayout.domains.tagsdelete', [
        'domains' => $domains
    ]);

1 个答案:

答案 0 :(得分:2)

这是因为您使用$ domains [0]并获得第一个域名。 你必须循环它们:

foreach($domains as $domain) {
    foreach($domain->tags as $tag) {
        var_dump($tag);
    }
}

编辑: 如果您需要视图中的标签,请按以下方式进行操作:

@foreach($domains as $domain)
     <p>{{ $domain->name }}</p> //where name could be any field that $domain has
     @foreach($domain->tags as $tag)
     <p>{{ $tag->name }}</p> //where name could be any field that $tag has
     @endforeach
@endforeach

很高兴我很乐于助人:)