这可能听起来像一个明显的问题,但我只想得到一些保证。
使用Laravel的渴望加载功能,从我理解它将创建 两个问题 返回一个完整的相关结果列表(比如说你正在使用两个表)。但是,如果我错了,请纠正我,使用join语句只会让你失望 一个查询,这创建了一个较少的往返服务器的数据库(MySQL),是一个更有效的查询。
我知道你可以在Laravel中编写连接查询,这很好,所以问题是:我不正确地假设当从两个或多个表中检索相关数据时,我是否应该费心去加载,而只是编写我自己的连接声明?
******编辑*******
回到这一年后,我个人认为,只需编写查询,生成并写好。
你完全理解你的理解。如果你写一个 join
用于连接两个或多个表的语句 join()
在 Laravel
然后它只使用一个查询 Eloquent
模特 eager loading
技术需要多个查询。
如果我不打算急切加载,而只是写我自己的
加入陈述
实际上, eager loading
是一种使用加载相关模型的技术 Eloquent ORM
很容易,它使用 Query Builder
在幕后,让你使用 Eloquent Model Object
无需自己进行查询并以不同方式表示数据,使用 Eloquent ORM
您可以直接与模型交互,这些模型使用其他功能表示数据库中的对象。最重要的是,它隐藏了复杂性 SQL
并允许您使用OOP方式进行数据库查询 PHP
码。
但是当你手动打电话 join
属于的方法 Illuminate\Database\Query\Builder
那么你正在使用的 Query Builder
直接,这需要你写更多的代码,需要更多的知识 sql query
因为它不会隐藏您的查询,但可以帮助您更精确地进行查询,但您仍然可以进行查询。
两者都是不同的东西,它们的工作方你可以搜索 Google
使用这个词 ORM vs Query Builder
。
你完全理解你的理解。如果你写一个 join
用于连接两个或多个表的语句 join()
在 Laravel
然后它只使用一个查询 Eloquent
模特 eager loading
技术需要多个查询。
如果我不打算急切加载,而只是写我自己的
加入陈述
实际上, eager loading
是一种使用加载相关模型的技术 Eloquent ORM
很容易,它使用 Query Builder
在幕后,让你使用 Eloquent Model Object
无需自己进行查询并以不同方式表示数据,使用 Eloquent ORM
您可以直接与模型交互,这些模型使用其他功能表示数据库中的对象。最重要的是,它隐藏了复杂性 SQL
并允许您使用OOP方式进行数据库查询 PHP
码。
但是当你手动打电话 join
属于的方法 Illuminate\Database\Query\Builder
那么你正在使用的 Query Builder
直接,这需要你写更多的代码,需要更多的知识 sql query
因为它不会隐藏您的查询,但可以帮助您更精确地进行查询,但您仍然可以进行查询。
两者都是不同的东西,它们的工作方你可以搜索 Google
使用这个词 ORM vs Query Builder
。