我在保险表和确认表之间有一个OnetoOne关系。
以下是确认的迁移:
$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 :(得分:0)
如果您想阻止重复输入,请使用唯一验证规则检查您的唯一属性。
或者,您可以先使用查找或任何查询构建器检入数据库,然后创建新的模型实例(如果它已经不存在)。
$ status变量永远不会到达else块。您可能需要发布表单代码以进行更深入的调查。