2013-06-04 49 views
0

我在Laravel 3中使用雄辯,並想知道有什麼最佳做法是有條件地更新數據庫表中的記錄。我將模型中的關鍵字設置爲'email'字段,並且發現可以使用find()方法進行檢查,如果沒有找到任何結果,我可以創建模型的新實例並保存記錄,但是這種方法看起來/感覺笨重和繁瑣。雄辯的條件更新

什麼是最清潔的方式來查看一條記錄是否存在匹配傳入的關鍵值,並基於該關鍵值創建新記錄或只更新現有的記錄?

$form = FormDB::find('[email protected]'); 

    if($form) { 
     $form->text = "Updated"; 
     $form->save(); 
    } else { 
     $form = new FormDB; 
     $form->email = "[email protected]"; 
     $form->text = "Inserted"; 
     $form->save(); 
    } 

回答

1

你可以試試這個

$form = !FormDB::find('[email protected]') ? new FormDB : FormDB::find('[email protected]'); 
$form->email = !$form->email ? "[email protected]" : $form->email; 
$form->text = !$form->text ? "Inserted" : "Updated"; 
$form->save(); 
+0

這確實收緊了一點東西,做多了一些調查,並尋找其他的代碼後,我意識到我的解決方案真的不是那麼笨重。謝謝謝謝! –

+0

@NicholasKreidberg,不客氣:-) –