Php 如何使用eloquent在Laravel4中运行查询
我已经阅读了文档,但我不太明白如何在Laravel4中运行以下查询Php 如何使用eloquent在Laravel4中运行查询,php,laravel,laravel-4,Php,Laravel,Laravel 4,我已经阅读了文档,但我不太明白如何在Laravel4中运行以下查询 SELECT COUNT(*) FROM acl a, routes r WHERE (a.user_id = 1 OR a.group_id IN(SELECT group_id FROM user_group_junction WHERE user_id = 1)) AND r.route = 'protected' AND a.routes_id = r.id;
SELECT
COUNT(*)
FROM
acl a,
routes r
WHERE
(a.user_id = 1 OR
a.group_id IN(SELECT group_id FROM user_group_junction WHERE user_id = 1)) AND
r.route = 'protected' AND
a.routes_id = r.id;
那么,我将如何使用eloquent在Laravel4中运行查询呢
是,每个表都有一个模型,并且定义了关系
根据我选择的答案,以下是我的想法(和作品)
在雄辩模型上调用的方法传递到
illighte\Database\elogent\Builder
类,该类本身从illighte\Database\Query\Builder
类扩展而来。这意味着所有你可以用的东西,你也可以用雄辩的模型来做。例外情况是不需要定义表
例如,如果您想执行连接和where,就像上面所做的那样,您只需执行以下操作:
$query = Acl::join('routes', 'acl.routes_id', '=', 'routes.id')
->where('routes.route', '=', 'protected');
$results = $query->get();
显然,这不是您的全部查询,但您可以找出其余的查询
$query = Acl::join('routes', 'acl.routes_id', '=', 'routes.id')
->where('routes.route', '=', 'protected');
$results = $query->get();