0

我在 Laravel 3 中使用 Eloquent,想知道有条件地更新数据库表中的记录的最佳实践是什么。我将模型中的密钥设置为“电子邮件”字段,并发现我可以使用 find() 方法进行检查,如果没有找到任何内容,我可以创建模型的新实例并保存记录,但是这种方法看起来/感觉笨重和笨重。

查看是否存在与传入的键值匹配并基于该键值创建新记录或仅更新现有记录的最简洁方法是什么?

    $form = FormDB::find('blah@blah.com');

    if($form) {
        $form->text = "Updated";
        $form->save();
    } else {
        $form = new FormDB;
        $form->email = "blah@blah.com";
        $form->text = "Inserted";
        $form->save();
    }
4

1 回答 1

1

你可以试试这个

$form = !FormDB::find('blah@blah.com') ? new FormDB : FormDB::find('blah@blah.com');
$form->email = !$form->email ? "blah@blah.com" : $form->email;
$form->text = !$form->text ? "Inserted" : "Updated";
$form->save();
于 2013-06-04T23:50:13.027 回答