最近整个团队在通过协作完成一个类似各大网站邮件服务的功能!以让大家把之前所学的内容与实际的项目相结合起来!首先我把自己负责的那小部分功能通过这篇文章总结一下! 我们先看下效果图! 功能介绍:统计当前用户收件箱,发送箱以及保存箱中邮件的数量;当天以及昨天发送和接收邮件的数量。由于这些统计信息可以在许多地方使用到,所以我把它做成了一个element! 首先我们把元素文件放在views/elements/目录下,其代码片段为: requestAction(array('controller'=>'notes','action'=>'info')); ?>
info
收件箱:
发送箱:
保存箱:
今日发送:
今日接收:
昨日发送:
昨日接收:
请注意requestAction最适合用在(使用了缓存的)页面元素(element)的相关处理上,用于在渲染页面之前取得该元素需要的数据。 然后我们来看下notes控制器中info()action中的代码片断: //get yesterday sent $ysent = $this->Note->SentNote->find('count',array( 'conditions'=>array( $yconditions, 'SentUser.id' => $this->Auth->user('id') ))); $this->set('ysent',$ysent); if (isset($this->params['requested'])) { return compact('allinbox','allsent','allsaved','todaysent','todayinbox','ysent','yinbox'); } 我们通过compact()将元素各个数据发送给元素! 那么当我们要使用该元素的时候,我们只需要在其视图文件中加入以下代码即可: element('notes/notes_count'); ?> [...]