How I can get data from pivot table in Laravel 5?

时间:2016-05-17 11:05:30

标签: laravel pivot-table

I want to get all the tags that belongs to their domains but I couldn't find an answer how I can do that.

I think the solution is something in this way:

$domain = Domains::findOrFail($id);

realation:

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

and in my view:

            @foreach($domains as $domain)
                <tr>
                    <td>{{ $domain->pivot->name }}</td>
                </tr>
            @endforeach

Thanks for taking time.

1 个答案:

答案 0 :(得分:0)

我会建议这样的结构。如果您正确地遵循数据库命名约定,那么您不需要任何其他内容。您应该为标记和域创建不同的表/模型。然后你的数据透视表应该像domains_tags(id,domain_id,tag_id)

class Domain extends Model
{

    public function tags(){
        return $this->belongsToMany('App\Tag');
    }
}



class Tag extends Model
{

    public function domains(){
        return $this->belongsToMany('App\Domain');
    }
}


$domain = App\Domain::find(1);

foreach ($domain->tags as $tag) {
    //
}