yii学习,第九章:迭代6:添加用户评论

设计并创建一个支持我们工作的数据库;

创建一个Yii的AR类关联到我们创建的数据库表;

在主题详情页面添加一个表单以供用户提交评论;

在主题详情页面显示所有与主题相关联的内容列表;

在项目列表页面利用Yii挂件的列出显示大部分最近内容。


任务: 添加评论列表和评论输入框到issue的view页面


表:

CREATE TABLE tbl_comment 

(

    `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, 

    `content` TEXT NOT NULL, 

    `issue_id` INTEGER, 

    `create_time` DATETIME,

    `create_user_id` INTEGER, 

    `update_time` DATETIME, 

    `update_user_id` INTEGER

)


ALTER TABLE `tbl_comment` ADD CONSTRAINT `FK_comment_issue` FOREIGN KEY (`issue_id`) 

REFERENCES `tbl_issue` (`id`);

ALTER TABLE `tbl_comment` ADD CONSTRAINT `FK_comment_author` FOREIGN KEY (`create_user_id`) 

REFERENCES `tbl_user` (`id`);


创建comment的ar模型类Comment.php


在Issue.php中添加addComment;


修改IssueController.php中的actionView方法。

添加获取当前issue的评论数据

修改actionView对应的模板view.php

其中添加输入评论的(views/comment/_form.php),

以及显示评论列表的模板(views/issue/_comments.php)(如果有评论则显示)


添加评论和现实评论完成。



创建一个最新评论的挂件:


在/protected/components/新建文件RecentComments.php

class RecentComments extends CWidget 

{

    //重载init方法,初始化

    public function init(){

    }

    //重载run方法,执行widget

    public function run(){

        $this->render("recentComments");

    }

}


在/protected/components/views/创建view文件 recentComments.php

这个就是挂件的模板了。


调用挂件

在project的列表显示最近的评论

view文件中调用<?php $this->widget('RecentComments'); ?>


CPortlet

CPortlet是zii的一部分,是将官方的扩展类库打包放在Yii里。它给所有的portlet风格的挂件提供了一个优秀的基类。它允许我们渲染一个好的标题和保持一致的HTML标记,因此所有的挂件可以非常轻松的以同样的方式加入到应用程序中。一旦我们有一个渲染内容的挂件(就像 RecentComments ),我们可以简单地使用所提供挂件作为CPortlet的一部分,CPortlet本身就是一个挂件,因为它也是扩展自CWidget。我们可以通过把 RecentComments挂件的调用放置在CPortlet的beginWidget()和一个endWiget()之间


<?php $this->beginWidget('zii.widgets.CPortlet', array( 

    'title'=>'Recent Comments',

)); 

$this->widget('RecentComments'); 

$this->endWidget(); ?>


挂件属性赋值:

<?php $this->beginWidget('zii.widgets.CPortlet', array( 

    'title'=>'Recent Project Comments',

));

$this->widget('RecentComments', array('projectId'=>$model->id)); //projectId赋值(挂件中的属性之一)

$this->endWidget(); ?>


总结:

本章主要内容有,添加评论功能。过程一样,建表,创建ar模型,在IssueController的view里面

添加评论列表,添加评论的表单等


你可能感兴趣的:(yii学习,第九章:迭代6:添加用户评论)