当前位置: 首页 > 知识库问答 >
问题:

雄辩和查询生成器

栾烨华
2023-03-14

Laravel Eloquent的save()方法实质上是执行查询生成器的工作吗?

查询生成器:

DB::table('flights')
    ->where('id', 1)
    ->update(['name' => 'New Flight Name']);

雄辩的:

$flight = App\Flight::find(1);
$flight->name = 'New Flight Name';
$flight->save();

如果这是真的,那么Eloquent的创建()也是如此吗?我正在看Laravel的官方视频教程,我看到作者在控制器中使用了雄辩的create()保存()。这就是查询生成器和雄辩的区别吗?我们可以使用雄辩的内部控制器?

共有1个答案

陆臻
2023-03-14

>

  • 是的,查询生成器雄辩的方法正在做同样的工作,但是如果你使用雄辩的模型,你将能够使用雄辩的关系,这将加快开发过程事实上,如果你处理数据库中的大量数据,查询生成器会更快。

    保存和创建之间的区别在于,保存接受一个完整的雄辩模型实例,而创建接受一个普通的PHP数组。

  •  类似资料:
    • 我使用laravel雄辩到CRUD数据。我的问题是,我不知道如何使用laravel雄辩的ORM进行UNION查询。你能帮我解决我的问题吗 这是我想要在laravel雄辩或查询生成器中实现的示例查询

    • 假设我们正在使用Laravel的查询生成器: 我正在寻找一个等效的SQL: 当我必须键入大量select和WHERE(或者通常在select的列alias中包含别名,并且它在结果数组中使用)时,这将特别有用。如果没有任何表别名,我需要输入更多的内容,所有内容的可读性都会降低。在laravel文档中找不到答案,有什么想法吗?

    • 我有以下三种型号: 类别字段: 分类选项: 当我运行这个查询时,我得到了这个错误: SQLSTATE[42S22]:列未找到: 1054未知列'field ID'在'where子句'(SQL:选择*从其中=3)任何帮助请知道是什么问题!!?

    • 我正在使用Laravel和它提供的雄辩的ORM,但我正在努力选择我需要的数据。我有两种型号 我该怎么做?

    • 在我的应用程序中,我更新了从一对多到多对多的关系,我试图找出一种持久化关联功能的方法。 假设我有两个相关的表,例如狗和主人。如果我有一系列的主人,并且我正试图为这些主人获取一份狗的id列表,我应该如何雄辩地做到这一点? 这里也提出了类似的问题:https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-da

    • 假设我想用type=“color”显示一个完整的奖项列表: 为了实现这个结果,我可以在Laravel中进行如下查询: 如果您输出Laravel生成的SQL,您将看到只有WHERE子句被参数化,如果我从不受信任的来源获得,ON子句中的$年容易受到sql注入的攻击。此外,查询的缓存潜力也会降低,因为每年的美元会经常变化。注意:如果您认为我只是将第二个左连接条件添加到查询的WHERE中,这些条件是不一样