📅  最后修改于: 2023-12-03 15:37:23.191000             🧑  作者: Mango
在 Laravel 中,我们可以使用 Eloquent ORM 来创建或更新数据库中的记录。Eloquent ORM 是 Laravel 内置的一个简单而强大的 ORM(对象关系映射)工具,它可以帮助我们轻松地完成数据库操作。
要在 Laravel 中创建新的数据库记录,我们可以使用 create
方法。该方法接受一个数组作为参数,数组中包含需要插入到数据库的数据。以下是一个简单的示例:
$user = User::create([
'name' => 'John Doe',
'email' => 'john@example.com',
'password' => bcrypt('password'),
]);
在上面的代码中,我们使用 create
方法来创建一个新的 User
对象,并将该对象的属性设置为传递到 create
方法的数组中的值。
如果成功创建记录,则该方法将返回该记录的实例。如果创建失败,则该方法将抛出 Illuminate\Database\Eloquent\MassAssignmentException
异常,因为默认情况下,Laravel 拒绝使用批量赋值来填充模型中未知的属性。为了解决这个问题,我们需要在模型中定义可进行批量赋值的属性,如下所示:
class User extends Model
{
protected $fillable = [
'name', 'email', 'password',
];
}
在上面的代码中,我们使用 $fillable
属性来指定可以批量赋值的属性。
要在 Laravel 中更新数据库记录,我们可以使用 update
方法。此方法接受一个数组作为参数,数组中包含要将更新应用于的字段和值。以下是一个简单的示例:
$user = User::find(1);
$user->update([
'name' => 'Jane Doe',
]);
在上面的代码中,我们首先使用 find
方法来查找数据库中的记录,并将其赋值给 $user
变量。然后,我们使用 update
方法来更新记录的名称。
如果您要创建或更新数据库记录,则可以使用 updateOrCreate
方法。此方法接受一个数组作为参数,该数组包含要创建或更新的记录的查询条件。如果找到符合条件的记录,则会将传递的数据用于更新记录。否则,将使用传递的数据创建新记录。以下是一个简单的示例:
$user = User::updateOrCreate(
['email' => 'john@example.com'],
['password' => bcrypt('new-password')]
);
在上面的代码中,我们将使用 updateOrCreate
方法来查找具有指定电子邮件地址的用户。如果找到该记录,则将其密码更新为 new-password
。否则,创建一个新用户并使用传递的数据填充它。
现在,您已经了解了在 Laravel 中创建和更新数据库记录的基础知识。使用 Eloquent ORM,您可以轻松地执行这些操作,并使用简单的代码轻松操纵数据库。