使用 Laravel Eloquent 连接 3 个表
Join 3 tables using Laravel Eloquent
所以我有 3 tables
size_sets - id, name
sizes - id, name
size_set_sizes - size_id, size_set_id
我想在 size_set
模型中定义一个关系,该关系将检索可用于该 sizeset
的所有 sizes
类似于:
public function sizes()
{
//define relationship here
}
方法 sizes
应该从 size
table 到 size_set
模型中的 size_set_sizes
table 检索名称...
我的应用程序非常动态,因此我需要采用这种结构。我尝试了 hasManyThrough
关系,但无法正常工作。
我想我找到了我要找的答案是 pivot-table
http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/
100% 使用枢轴 table
https://laravel.com/docs/5.4/eloquent-relationships
这个link会给你所有你需要的
使用 belongsToMany()
关系,例如:
class Size extends Model
{
public function sizeSets()
{
return $this->belongsToMany(SizeSet::class, 'size_set_sizes');
}
}
class SizeSet extends Model
{
public function sizes()
{
return $this->belongsToMany(Size::class, 'size_set_sizes');
}
}
那么你可以这样做:
$sizeSet = SizeSet::with('sizes')->find($id);
然后 $sizeSet->sizes
将 return 该尺码集的尺码集合。
所以我有 3 tables
size_sets - id, name
sizes - id, name
size_set_sizes - size_id, size_set_id
我想在 size_set
模型中定义一个关系,该关系将检索可用于该 sizeset
sizes
类似于:
public function sizes()
{
//define relationship here
}
方法 sizes
应该从 size
table 到 size_set
模型中的 size_set_sizes
table 检索名称...
我的应用程序非常动态,因此我需要采用这种结构。我尝试了 hasManyThrough
关系,但无法正常工作。
我想我找到了我要找的答案是 pivot-table
http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/
100% 使用枢轴 table
https://laravel.com/docs/5.4/eloquent-relationships
这个link会给你所有你需要的
使用 belongsToMany()
关系,例如:
class Size extends Model
{
public function sizeSets()
{
return $this->belongsToMany(SizeSet::class, 'size_set_sizes');
}
}
class SizeSet extends Model
{
public function sizes()
{
return $this->belongsToMany(Size::class, 'size_set_sizes');
}
}
那么你可以这样做:
$sizeSet = SizeSet::with('sizes')->find($id);
然后 $sizeSet->sizes
将 return 该尺码集的尺码集合。