计算cakephp中的帖子数量

时间:2011-04-24 15:01:38

标签: cakephp count

我正在尝试在cake php中创建一个菜单,我也可以知道该部分中有多少篇文章,我应该使用手动查询,还是确实存在一些现有的方法呢?

My site menu:
- Works (12)
- Photos (35)
- Stuff (7)
- Contacts

我的问题也是我没有得到如何为每个视图访问这样的数据,这应该是一个主菜单,所以我应该在每个视图中使用它,但如果我把它放在default.ctp ,每个模型都不存在,因为我无法从视图中访问它。

是否存在谈论这个的页面?

2 个答案:

答案 0 :(得分:1)

由于这些是彼此无关的独立模型,因此您需要进行手动计数。

$this->Model->find('count');

修改

好的,所以看起来你在谈论不同的模特。

如果在菜单中使用它,则表示它将显示在所有页面中。

你有两种方法可以做到这一点。

您可以通过为您申请AppController来完成此操作。基本上,您可以将此代码放在beforeRender方法中,以便在每次呈现请求时运行

function beforeRender() {
   App::import('Model', array('Work', 'Photo', 'Stuff'));
   $work = new Work();
   $workCount = $work->find('count');

   //do the same for the other

   $this->set('workCount', $workCount);
}

有关回调的详细信息,请查看此内容:http://book.cakephp.org/view/977/Controller-Methods#Callbacks-984

其次,您可以通过帮助程序完成此操作。您可以将相同的代码(位于bforeRender内)放入帮助程序中,然后可以调用辅助方法。

您可以在此处查看有关创建帮助程序的更多信息:http://book.cakephp.org/view/1097/Creating-Helpers

答案 1 :(得分:0)