laravel 5.5 创建数据的最佳方式

laravel 5.5 best way to create data

我有创建新数据的代码, 但我很困惑使用 laravel 5.5.

在数据库中插入新数据的最佳方法是什么

代码 1:

$user = User::create([
    'name' =>  $request->name,
    'username' => $request->username,
    'email' => $request->email,
    'password' => $request->password,
]);

代码 2 :

$user = new User();
$user->name = $request->name;
$user->username = $request->username;
$user->email = $request->email;
$user->password = $request->password;
$user->save();

最好的方法是什么?你的理由是什么?

两种方式都不错。您需要知道的是您何时使用一个或另一个选项。

当你想接收和存储所有请求数据而不做任何处理时,你可以使用批量分配的方式。但是当你想更好地控制日期时,你可以选择第二种方式。

例如

您有一个接收订阅者数据(包括用户名和密码)的订阅表单,但您需要对密码值进行加密。在这种情况下,最好的选择是第二种,因为您将通过请求接收密码属性,然后需要加密该值,最后您将加密密码设置为 $model->password 属性。

您不需要绝对控制属性的任何其他情况,您可以使用批量分配方法。

他们俩碰巧是一样的。第一个选项是执行第二个选项的 Eloquent 方式。 Eloquent 用于以可读的方式简化语句之类的事情。像 firstOrCreate 这样的方法就是 Eloquent 方法在您的代码中更具可读性和简单性的示例。但是你提供的两个基本一致

附带说明一下,如果您需要有条件地保存 属性,第二个选项允许您使用 if 语句或任何条件代码语句..

这个问题还有一个话题,你也可以参考这个

希望对您有所帮助:)