[英]Inserting data into laravel db
我知道方法1中可以将数据插入到数据库中:
public function store(Request $request)
{
// Validate the request...
$flight = new Flight;
$flight->name = $request->name;
$flight->save();
}
方法二:
$flight = Flight::create([
'name' => 'London to Paris',
]);
插入 1 个值时使用的最佳方法是什么? 当您需要插入 10 个值时,最好的使用方法是什么? 还有其他更好的方法来插入值吗?
从技术上讲,没有太大区别,但关于create
的主要问题是它具有与大量分配相关的问题。
这意味着,例如,如果您有一个模型User
,它具有某些字段,包括一个可以是user
或admin
的role
字段。
然后,如果您使用这样的create
方法创建新记录:
$user = User::create($request->all());
然后成员可以在请求输入中传递参数role
并更改自己的角色并获得管理员权限,就这么简单! 您可以使用模型中的$fillable
属性来防止这种情况发生,但是如果处理不当,则会导致此类问题。
另一点是, create
方法使用save()
本身,如果您查看其实现,您可以看到:
public function create(array $attributes = [])
{
return tap($this->newModelInstance($attributes), function ($instance) {
$instance->save();
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.