2013-06-04 1 views
0

Я использую Eloquent в Laravel 3 и хотел бы знать, какие лучшие практики предназначены для условного обновления записи в таблице базы данных. У меня есть ключ в моей модели, заданной в поле «email», и я обнаружил, что могу выполнить проверку с помощью метода find(), и если ничего не найдено, я могу создать новый экземпляр модели и сохранить запись, но этот подход выглядит/чувствует себя неуклюжим и громоздким.Ecoquent Условное обновление

Каков самый чистый способ узнать, существует ли запись, соответствующая передаваемому ключевому значению и на основе которого создается новая запись или просто обновляется уже существующая?

$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

@ Николас Крейдберг, Добро пожаловать :-) –