在laravel多对多关系的项目中,我应该把"value of attribute"放在数据库的哪个table中吗?
In laravel project with many to many relation, should I put the "value of attribute" in which table of database?
我有一个 laravel 项目,其中包含多对多关系和多语言。
我使用 Laravel-Translatable 多语言包。
此程序存储大量文件及其属性。
每个属性在多个文件之间共享。但是每个属性在每个文件中都有不同的值。
Table 他们的关系就像这张照片:tables diagram
我应该把 attribute_value
放在 table 中吗?
谢谢
将 attribute_value
添加到 attrib_file
table。因为对于每个与文件的连接 attribute_value
应该是不同的。另一方面,每个文件存储属性值的数量。这就是为什么 attrib_file
pivot table 最合适。
documentation:
中给出了如何从 pivot table 检索信息
$attr = App\Attribute::find(1);
foreach($attr->files as $file) {
echo $file->pivot->attribute_value;
}
确保在您的关系方法中添加 ->withPivot('attribute_value')
return $this->belongsToMany('App\Models\File')
结尾。在 Attribute 模型中应该是这样的:
..
public function files() {
return $this->belongsToMany('App\Models\File')->withPivot('attribute_value');
}
我有一个 laravel 项目,其中包含多对多关系和多语言。
我使用 Laravel-Translatable 多语言包。
此程序存储大量文件及其属性。
每个属性在多个文件之间共享。但是每个属性在每个文件中都有不同的值。
Table 他们的关系就像这张照片:tables diagram
我应该把 attribute_value
放在 table 中吗?
谢谢
将 attribute_value
添加到 attrib_file
table。因为对于每个与文件的连接 attribute_value
应该是不同的。另一方面,每个文件存储属性值的数量。这就是为什么 attrib_file
pivot table 最合适。
documentation:
$attr = App\Attribute::find(1);
foreach($attr->files as $file) {
echo $file->pivot->attribute_value;
}
确保在您的关系方法中添加 ->withPivot('attribute_value')
return $this->belongsToMany('App\Models\File')
结尾。在 Attribute 模型中应该是这样的:
..
public function files() {
return $this->belongsToMany('App\Models\File')->withPivot('attribute_value');
}