繁体   English   中英

Laravel belongstomany - 三步关系

[英]Laravel belongstomany - 3 step relationship

我有 3 个相互关联的表

公司: id,名称
公司标签: id、companies_id、tags_id
标签: id, 名字

我想要做的是在表格标签中获取名称

Controller

$companies = Companies::with("tags")->get();

公司

public function tags(){
     return $this->belongsToMany(Companies::class, CompaniesTags::class, 'companies_id', 'id');
}

@if(isset($company->tags))
    @foreach ($company->tags as $tag)
        {{ $tag->name }}
    @endforeach
@endif

这就是错误数据的来源,请帮助我。

问题出在您的tags()方法中。 第二个参数是 pivot,不是 pivot model。如果要为 pivot 使用特定的 model,需要在 with using()之后指定

public function tags()
{
    return $this->belongsToMany(Companies::class, 'companies_tags', 'companies_id', 'id')
                ->using(CompaniesTag::class);
}
namespace App\Models;

use Illuminate\Database\Eloquent\Relations\Pivot;

class CompaniesTag extends Pivot { ... }
@foreach ($company->tags as $tag)
    {{ $tag->name }}
@endforeach

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM