【发布时间】:2018-06-04 09:44:10
【问题描述】:
数据库有 3 个表 chars、tags 和 chars_tags
chars 有以下列:
id | char_name
标签有以下列:
id | tag_name
chars_tags 有以下列:
id | char_id | tag_id
我总是使用下面的代码来获取数据,因为上次 char 表有另一个名为 'tag_id' 的列,现在他们删除了 'tag_id' 列并将其更改为数据透视表,即 'chars_tags'
$char = chars::where('id', '=', 1)
->with('tags:id,tag_name')
->get();
那么我现在如何获取带有标签的字符呢?
【问题讨论】:
-
你在模型中添加关系了吗?
-
也许这会帮助你试试这个stackoverflow.com/a/42515792/3016038
-
@DsRaj return $this->hasMany(tags::class, 'id', 'tag');我的 chars 模型中只有这个
-
我认为这是一个多对多关系(但您需要确认这一点:您的问题中没有足够的行为)所以您应该遵循:laravel.com/docs/5.6/eloquent-relationships#many-to-many 并在 Char 中切换到 belongsToMany()和标签模型...