2015-11-01 96 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塊。您可能需要發佈表單代碼以進行更深入的調查。