Laravel - 多对多关系中的附加信息
Laravel - additional info in ManyToMany relationship
我有三个这样的表:
Car
-id
-name
-production_start
-etc
Option
-id
-name
-price
Options_Cars
-id_option
-id_car
-in_basic
使用这样的代码:
class Cars extends Eloquent {
public function options()
{
return $this->belongsToMany('Options','options_cars','id_car','id_option');
}
}
如何检索视图中每个选项的 in_basic 字段?
我可能会扩展您的模式并添加另一个 table 以区分汽车的基本模型和添加了附加功能的模型,但仍将所有选项保留为构建块。例如...
Car
-id
-name
-production_start
-etc
Option
-id
-name
-price
-etc
Cars_BasicOptions
-car_id
-option_id
Cars_ExtraOptions
-car_id
-option_id
但这也让我想到了一个新的问题——因为这个选项有价格标签,所以它不再是通用的。考虑将金属喷漆作为一种选择——菲亚特 Punto 的价格与梅赛德斯 SLS-AMG 的价格相同吗?我对此表示怀疑......所以你认为的 Option 可能根本不适合成为那个通用的。根据您的业务逻辑,这样做可能更合适:
Car
-id
-name
-production_start
-etc
Option
-id
-car_id
-name
-price
-in_basic
-etc
当然,如果您想单独处理选项,您可以将其移动到不同的 table,例如...
Car
-id
-name
-production_start
-etc
Option
-id
-name
Car_Option
-car_id
-option_id
-price
-in_basic
-etc
这可能更接近您最初的想法。有帮助吗?
http://laravel.com/docs/5.0/eloquent#working-with-pivot-tables
return $this->belongsToMany('App\Role')->withPivot('foo', 'bar');
使 $model->pivot->foo
和 $model->pivot->bar
可供您使用。
这适用于 L4 和 L5。
我有三个这样的表:
Car
-id
-name
-production_start
-etc
Option
-id
-name
-price
Options_Cars
-id_option
-id_car
-in_basic
使用这样的代码:
class Cars extends Eloquent {
public function options()
{
return $this->belongsToMany('Options','options_cars','id_car','id_option');
}
}
如何检索视图中每个选项的 in_basic 字段?
我可能会扩展您的模式并添加另一个 table 以区分汽车的基本模型和添加了附加功能的模型,但仍将所有选项保留为构建块。例如...
Car
-id
-name
-production_start
-etc
Option
-id
-name
-price
-etc
Cars_BasicOptions
-car_id
-option_id
Cars_ExtraOptions
-car_id
-option_id
但这也让我想到了一个新的问题——因为这个选项有价格标签,所以它不再是通用的。考虑将金属喷漆作为一种选择——菲亚特 Punto 的价格与梅赛德斯 SLS-AMG 的价格相同吗?我对此表示怀疑......所以你认为的 Option 可能根本不适合成为那个通用的。根据您的业务逻辑,这样做可能更合适:
Car
-id
-name
-production_start
-etc
Option
-id
-car_id
-name
-price
-in_basic
-etc
当然,如果您想单独处理选项,您可以将其移动到不同的 table,例如...
Car
-id
-name
-production_start
-etc
Option
-id
-name
Car_Option
-car_id
-option_id
-price
-in_basic
-etc
这可能更接近您最初的想法。有帮助吗?
http://laravel.com/docs/5.0/eloquent#working-with-pivot-tables
return $this->belongsToMany('App\Role')->withPivot('foo', 'bar');
使 $model->pivot->foo
和 $model->pivot->bar
可供您使用。
这适用于 L4 和 L5。