【发布时间】:2015-02-08 18:51:53
【问题描述】:
我是 Yii 框架的新手。事实上,它上周被扔在了我的腿上。在电子邮件确认中,我需要打印“数量”的帖子。例如,3 个帖子。
问题我不知道如何计算帖子并将其打印在确认中。我是否将数据库查询添加到控制器而不是表单?然后打印出下面的帖子数量? -
<?php echo $posts->count($posts);
我只是对使用框架有点困惑。我需要一点推动力。
提前谢谢你。
【问题讨论】:
我是 Yii 框架的新手。事实上,它上周被扔在了我的腿上。在电子邮件确认中,我需要打印“数量”的帖子。例如,3 个帖子。
问题我不知道如何计算帖子并将其打印在确认中。我是否将数据库查询添加到控制器而不是表单?然后打印出下面的帖子数量? -
<?php echo $posts->count($posts);
我只是对使用框架有点困惑。我需要一点推动力。
提前谢谢你。
【问题讨论】:
好久没用yii了,有点生疏了。
我要做一个假设:$post 是从 CActiveRecord 扩展而来的
CActiveRecord 使用的计数函数需要 sql 条件 (noted here)。
我的下一个假设是您在视图中而不是在控制器中准备所有这些业务逻辑。您可以考虑从视图发送给装饰器,作为您的电子邮件确认消息。
这是未经测试的,但下面我们需要比较所有帖子的pk:
echo $posts->count('fieldDate < now() AND fieldDate >' . strtotime('yesterday'));
更好更容易的可能是:
echo $posts->countByAttributes(array('postID'));
如果您要计算作者的所有帖子(也未经测试):
$numberOfPosts = count(PostModel::model()->findAll("author_id=$authorId"));
否则您可以尝试:
count($posts); 如果您接收到一个帖子对象数组,这些对象已在视图中的前一个控制器中查询。
胖模型,瘦控制器。
【讨论】:
$numberOfPosts = count(PostModel::model()->findAll("author_id=$authorId"));