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数组格式的所有记录。

希望对你有所帮助