我有一个DetailsAttribute
型号。
我有一个Actions
型号。
他们之间的关系很多很多。
这就是为什么我创建了一个新的details_attribute_action
表。
模型的代码是:
class DetailsAttribute extends Eloquent{
public function actions(){
return $this->belongsToMany('Action', 'details_attribute_action', 'action_id', 'details_attribute_id');
}
}
和
class Action extends Eloquent{
public function detailsAttribute(){
return $this->belongsToMany('DetailsAttribute', 'details_attribute_action', 'details_attribute_id', 'action_id');
}
}
然后当用户想要添加新的detailsAttribute
时,他会提交一个包含许多操作的表单。
我这样做:
$detailsAttribute = DetailsAttribute::create($data);
我也有这个动作:
$actions = Input::get('action_id')
我的问题是如何将此$actions
添加到details_attribute_action
?
答案 0 :(得分:1)
这将链接数据透视表中的模型:
$detailsAttribute->actions()->sync($actions);
这就是你需要的,对吗?
旁注:你的关系中你的fk顺序错了,应该是这样的:
class DetailsAttribute extends Eloquent{
public function actions(){
return $this->belongsToMany('Action', 'details_attribute_action', 'details_attribute_id', 'action_id');
}
}
class Action extends Eloquent{
public function detailsAttribute(){
return $this->belongsToMany('DetailsAttribute', 'details_attribute_action', 'action_id', 'details_attribute_id');
}
}
对于belongsToMany
,它总是这样:
belongsToMany('Model', 'table', 'this_model_fk', 'other_model_fk')