有没有一种简单的方法可以在hasMany和belongsTo关系之间的一行中进行“同步”(根据多对多)关系?
即。像这样的东西
$opportunity->quotations()->sync($request->input('quotation_list', []));
以下是模型的配置方式。
public function quotations()
{
return $this->hasMany('App\Quotation');
}
public function opportunity()
{
return $this->belongsTo('App\Opportunity');
}
以下是解决方案的当前黑客攻击!我想要一些更简单的东西,如果条目已经存在,那么就不会在数据库写入上加倍!
$set = $opportunity->quotations()->get()->lists('id')->toArray();
if ($set <> '')
{
foreach ($set as $id)
{
$quotation = Quotation::find($id);
$quotation->opportunity_id = null;
$quotation->save();
}
}
if ($request->quotation_list <> '')
{
foreach ($request->quotation_list as $id)
{
$quotation = Quotation::find($id);
$quotation->opportunity_id = $opportunity->id;
$quotation->save();
}
}