繁体   English   中英

将数据插入laravel db

[英]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 ,它具有某些字段,包括一个可以是useradminrole字段。

然后,如果您使用这样的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM