Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Laravel 4和Elount查询相关模型_Php_Sql_Laravel_Laravel 4 - Fatal编程技术网

Php 使用Laravel 4和Elount查询相关模型

Php 使用Laravel 4和Elount查询相关模型,php,sql,laravel,laravel-4,Php,Sql,Laravel,Laravel 4,使用Laravel4,我有以下模型和关系:有许多记录的事件有许多项。我想做的是这样的事情 Item::where('events.event_type_id', 2)->paginate(50); 这当然不起作用,因为雄辩者在检索记录时不会将模型连接在一起。那么,我如何做到这一点,而不只是自己编写SQL(我希望避免使用分页) 如果要指定其他约束,其工作原理如下: Item::with(array('events' => function($query) { return $

使用Laravel4,我有以下模型和关系:有许多记录的事件有许多项。我想做的是这样的事情

Item::where('events.event_type_id', 2)->paginate(50);
这当然不起作用,因为雄辩者在检索记录时不会将模型连接在一起。那么,我如何做到这一点,而不只是自己编写SQL(我希望避免使用分页)

如果要指定其他约束,其工作原理如下:

Item::with(array('events' => function($query) {
    return $query->where('event_type_id', 2);
}))->paginate(50);

这里有一个挂起的拉取请求

这将允许您在has()方法上使用约束,如下所示:

$results = Foo::has(array('bars' => function($query)
{
    $query->where('title', 'LIKE', '%baz%');
}))
->with('bars')
->get();
其想法是,您只返回在标题列中包含字符串“baz”的相关栏的foo


这里也讨论了它:。希望它能很快被合并。当我使用pull请求中更新的代码更新Builder类的本地副本时,这对我来说很好。

我认为这是不可能的。Github上有一个请求,虽然它允许您这样做:这工作非常出色,但我的站点将有数千条记录,据我所知,使用IN(…)可以快速加载。与使用SQL联接相比,这不是非常低效吗?因为分页是有限制的。我不认为这很可怕,但我认为这是相当简单的实现,并为我们在获取项时可以运行的查询类型提供了更大的灵活性。如果使用联接,在水合模型时,您必须以某种方式区分项字段和事件字段,因此也会有一些开销。另外,您正在获取较少的冗余数据,因为每个项目只获取一次,即使它有多个事件。