0
hasManyとbelongsToの関係の間で、1行に "同期"(多対多の関係)を行う簡単な方法はありますか?このLaravelは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();
}
}
質問が更新されました。 –