CakePHP语句查询
我怀疑我应该如何在CakePHP上编写查询。 我不想使用CakePHP中的querybuilder,而是想使用语句查询。 因此,我的问题是:CakePHP语句查询,php,mysql,cakephp,Php,Mysql,Cakephp,我怀疑我应该如何在CakePHP上编写查询。 我不想使用CakePHP中的querybuilder,而是想使用语句查询。 因此,我的问题是: SELECT `Post`.id, `Post`.title, COUNT(`Like`.id) AS `Posts_Liked` FROM posts AS `Post`, likes AS `Like` WHERE `Post`.id = `Like`.posts_id; 但是,当我将结果发送到查看页面时,在调用$post['post']['Post
SELECT `Post`.id, `Post`.title, COUNT(`Like`.id) AS `Posts_Liked`
FROM posts AS `Post`, likes AS `Like`
WHERE `Post`.id = `Like`.posts_id;
但是,当我将结果发送到查看页面时,在调用
$post['post']['Posts\u Liked']]
时,我无法获取计数,因此我应该如何在视图中调用此数据?聚合结果不会按照
您应该使用或获取如下数据:
$post[0]['Posts_Liked']
您可以使用
debug($post);
查看阵列的结构
使用虚拟字段,您可以实现如下目的:
$this->Post->virtualfields['Posts_liked'] = 0;
$this->Post->query('SELECT `Post`.id, `Post`.title, COUNT(`Like`.id) AS `Posts_liked` FROM posts AS `Post`, likes AS `Like` WHERE `Post`.id = `Like`.posts_id;');
然后按常规获取数据
$post['Post']['Posts_liked']
如果您希望它是永久性的,您应该尝试将聚合结果添加到数据数组中 您应该使用或获取如下数据:
$post[0]['Posts_Liked']
您可以使用
debug($post);
查看阵列的结构
使用虚拟字段,您可以实现如下目的:
$this->Post->virtualfields['Posts_liked'] = 0;
$this->Post->query('SELECT `Post`.id, `Post`.title, COUNT(`Like`.id) AS `Posts_liked` FROM posts AS `Post`, likes AS `Like` WHERE `Post`.id = `Like`.posts_id;');
然后按常规获取数据
$post['Post']['Posts_liked']
如果你想让它永久化,你应该尝试一下尝试做一个pr($post);模具()代码>在模型调用之后,甚至在它到达视图之前。我认为它可能被$post[0]['Posts\u Liked']]
引用,因为它是一个聚合函数。您会注意到CakePHP将SUM()
、MAX()
、COUNT()
等放入$result[0]['COUNT']中代码>一种符号。希望这有帮助
CakePHP的pr()
函数比print\r
好得多,imho.试试做pr($post);模具()代码>在模型调用之后,甚至在它到达视图之前。我认为它可能被$post[0]['Posts\u Liked']]
引用,因为它是一个聚合函数。您会注意到CakePHP将SUM()
、MAX()
、COUNT()
等放入$result[0]['COUNT']中代码>一种符号。希望这有帮助
CakePHP的pr()
函数比print\r
,imho.使用debug($result);死亡使用debug($result)在控制器中编写>并查看它是否符合您的预期;死亡在控制器中编写>并查看它是否符合您的期望