Laravel同步hasMany和属于反过来?

时间:2016-11-21 10:46:41

标签: php laravel laravel-5 eloquent

有没有一种简单的方法可以在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();
    }
}

0 个答案:

没有答案