2015-11-01 95 views
0

我在保险表和确认表之间有OnetoOne关系。正确使用updateOrCreate方法

这里是确认迁移:

$table->increments('id'); 
     $table->integer('insurance_id')->unsigned()->index()->unique(); 
     $table->boolean('status'); 
     $table->timestamps(); 
     $table->foreign('insurance_id')->references('insurancenumber')->on('insurances'); 

我想要的状态更新。

没有与拒绝和接受的两个按钮形式和控制器做到这一点:

public function confirmation(){ 

    $confirm_button = Request::get('confirm_button'); 
    $reject_button = Request::get('reject_button'); 
    if (isset($confirm_button)){ 
     $status = true; 
    }else if (isset($reject_button)){ 
     $status = false; 
    } 
    Confirmation::updateOrCreate(['insurance_id' => session('insurance_id')],['status'=> $status]); 
} 
} 

我想如果确认行具有相同的insurance_id存在,只是对其进行更新。

它总是在状态上设置为false。会议有正确的价值,我之前检查过它。

回答

0

如果要防止重复输入,请使用唯一验证规则检查您的唯一属性。

或者,您可以先使用查找或任何查询构建器检查数据库,然后创建模型的新实例(如果它已不存在)。

$状态变量永远不会到达else块。您可能需要发布表单代码以进行更深入的调查。