Laravel Eloquent ORM 获取函数工作混乱
Laravel Eloquent ORM get function working Confusion
我是 laravel 的新手,所以谁能向我解释一下 eloquent ORM 的 get() 函数究竟做了什么。我有以下查询,我需要知道在哪一行查询数据库。
$propertiesQuery = Property::with('country', 'city','bannerInvoicesCount','rejectedBannerInvoicesCount')
->where('is_deleted','=',1);
if(Auth::user()->type == 'po') {
$propertiesQuery->where('user_id', '=', Auth::user()->id);
}
$propertiesQuery->orderBy('created_at', 'DESC');
$properties = $propertiesQuery->get();
现在在上面的代码中,无论是查询数据库还是调用 get() 函数时,我都访问了模型一次。我无法理解它的内部工作原理。正是在哪个语句上执行查询。
@Raza 在 eloquant $propertiesQuery->get() 步骤之前,它会像这样准备您的查询:
select * from table where user_id=1
并且当您 call/trigger $propertiesQuery->get() 方法时,它会将您的查询转发到数据库并根据您的查询获取记录。就像,通常我们用普通的 sql:
eg: mysql_query($query);
then mysql_fetch_assoc() etc methods
所以get()方法包含on:执行查询和return数组格式的所有记录。
希望对你有所帮助
我是 laravel 的新手,所以谁能向我解释一下 eloquent ORM 的 get() 函数究竟做了什么。我有以下查询,我需要知道在哪一行查询数据库。
$propertiesQuery = Property::with('country', 'city','bannerInvoicesCount','rejectedBannerInvoicesCount')
->where('is_deleted','=',1);
if(Auth::user()->type == 'po') {
$propertiesQuery->where('user_id', '=', Auth::user()->id);
}
$propertiesQuery->orderBy('created_at', 'DESC');
$properties = $propertiesQuery->get();
现在在上面的代码中,无论是查询数据库还是调用 get() 函数时,我都访问了模型一次。我无法理解它的内部工作原理。正是在哪个语句上执行查询。
@Raza 在 eloquant $propertiesQuery->get() 步骤之前,它会像这样准备您的查询:
select * from table where user_id=1
并且当您 call/trigger $propertiesQuery->get() 方法时,它会将您的查询转发到数据库并根据您的查询获取记录。就像,通常我们用普通的 sql:
eg: mysql_query($query);
then mysql_fetch_assoc() etc methods
所以get()方法包含on:执行查询和return数组格式的所有记录。
希望对你有所帮助