当前位置:首页 > 日记 > 正文

一个详细的解决方案的搜索和排序方法的cgridview相关表一

一个详细的解决方案的搜索和排序方法的cgridview相关表一
本文介绍了查找和排序的方法cgridview相关表一。分享给你供你参考。具体实现的方法如下:

在一cgridview搜索和排序方法有点复杂。今天我看了一个外国人写的游戏。现在我想和你们分享我的朋友们。我相信它会帮助你在学习Yii框架。

首先,检查你的博客protectedmodelscomment.php演示,确保点评模式有一个搜索的方法,如果没有,使用后创建一个博客,我下载的演示是不。

然后,时间写代码的时候,我们开始commentcontroller,我们添加一个ActionList:它。

复制代码如下:公共职能ActionList()

{

为模型=新的评论(搜查);

元模型-> unsetattributes();

如果(isset($ _get { 'comment ' }))

元模型->属性= $ _get { 'comment};
美元->渲染('list,阵列(

模型= $模型,

));

}

它看起来并不好,就像你在CRUD代码生成在GII。现在让我来创建视图,创建list.php下 /保护/意见/评论/目录并粘贴下面的代码

复制代码代码如下:面包=阵列(

评论,

);

>
管理评论
('zii部件。部件。网格。cgridview,阵列(

dataProvider ' = >模式>搜索(美元),

过滤器= $模型,

(列= >阵列

内容,

职称,

状态,

作者

),

));

>

评论列表

这是一个基本的cgridview仅显示评论的内容、状态和作者,而文章的标题,我们假设我们想添加一列第这个列表的标题,我们只需要添加post.title。

复制代码代码如下:列= >阵列(

内容,

职称,

状态,

作者,

),

现在,如果您可以访问下面的页面,您会发现文章的标题确实出现了。
问题:

如果你仔细看这个页面,你会发现你无法搜索文章的标题,你将不能够通过文章的标题排序,这是因为cgridview发现在一个给定的列的名称,是post.title点。如果有时间的话,它会不生成搜索框。

解uff1a

我们要去努力解决的问题。首先,我们要添加一个getter和setter的常见模式,例如。

复制代码如下:私人_posttitle美元= null;

公共功能getposttitle()

{

如果(美元-> _posttitle零美元->后= = =!= NULL)

{

这_posttitle =美元->美元->后->标题;

}

返回_posttitle美元->;

}

公共功能setposttitle(价值)

{

美元-> _posttitle =价值;

}

接下来,将该属性添加到规则函数中:

复制代码如下:公共函数规则()

{

注意:您应该只为那些属性定义规则

接收用户输入。

返回的数组(

阵列(内容、作者、电子邮件、'required),

阵列('author,电子邮件,网址,'length ','max= > 128),

阵列('email','email'),

阵列('url ','url)
阵列(内容,posttitle,现状,作者'安全',在' = >搜查),

);

}

这还不够。需要改变的是我们的搜索功能:

复制代码代码如下:$标准=新cdbcriteria;

标准$>
$标准->比较('t.content,美元->内容,真的);

$标准->比较('t.status,美元->状态);

$标准->比较('t.author,美元->作者,真的);

$标准->比较('post。标题,美元-> posttitle,真的);

然后我们添加排序:

复制代码如下:排序=新CSort();

$ > >属性=数组(

defaultorder= >的t.create_time desc,

内容=数组(

ASC= > 't.content,

降序= >的t.content desc,

),

状态=数组(

ASC= > 't.status,

降序= >的t.status desc,

),

作者=数组(

ASC= > 't.author,

降序= >的t.author desc,

),

posttitle= >阵列(

ASC= > 'post称号,

降序= >的post.title desc,

),

);

你可能会注意到,我使用的是完整的。'columnname'grammar。我这样做的原因是为了避免MySQL扔列是模棱两可的错误。

确保所有的运行,我们必须通过csort实例和cdbcriteria实例CActiveDataProvider:

复制代码如下:返回cactivedataprovider('comment,阵列)。

标准= $标准,

排序

));

返回新的cactivedataprovider('comment,阵列(

标准= $标准,

排序

));

我们现在要做的就是修改我们的视图,它显示你想要在CGridView显示属性:

复制代码代码如下:列= >阵列(

内容,

posttitle,

状态,

作者,

),

刷新,应该可以,效果如下图所示:
希望本文有助于基于Yii框架的PHP程序设计人。

相关文章

推荐5种常见的Javascript调试技术

推荐5种常见的Javascript调试技术

调试,推荐,常见,技术,电脑软件,我使用printf调试前,自那时以来,我用这个方法似乎总是能够解决bug的速度。 在某些情况下,需要更好的工具,这里有一些最好的工具,我相信你会发现它们的用处: 1。调试器; 可以使用调试器;语句在代码中添加一个强制断…

PS图象处理软件以创新的双曝光教程

PS图象处理软件以创新的双曝光教程

教程,图象,处理软件,电脑软件,PS,本教程向您介绍利用PS图象处理软件创新的双曝光法。本教程所提供的教程非常漂亮,难度也不是很大。建议你喜欢你的朋友一起学习。 今天,萧边发现Zimo的创意照片后期制作效果mdash;双重曝光的效果。特别是,教程非…

掷弹兵彩票抽奖实现的一个例子

掷弹兵彩票抽奖实现的一个例子

彩票,抽奖,例子,电脑软件,掷弹兵,本文描述了掷赢游戏的jQuery实现的详细步骤,供大家参考,具体分析如下: 本游戏是在垄断游戏的背景下,综合运用jQuery和php的知识,设计出掷骰子点来达到抽奖的效果,当然,抽奖的概率是可控的,开发者可以用一些修改的…

画家发型的风格和绘画过程

画家发型的风格和绘画过程

画家,风格,过程,电脑软件,本教程介绍朋友的风格和绘画风格的画家,插画教程是王子的能力开放,成员非常感激gxiaoman分享,实践样式设计和画家的衣服是同一作者,推荐给大家,希望对你有帮助 本教程介绍朋友的风格和绘画风格的画家,插画教程是王子的能…

PS结合3D马克斯三羊开泰多层立体字

PS结合3D马克斯三羊开泰多层立体字

立体字,3D,多层,马克斯,效果,本教程介绍朋友使用PS教程制作3D马克斯三阳开泰多层立体特征的影响,所产生的效果真的很好,本教程不难推荐,喜欢的朋友可以跟着教程一起学习吧 本教程介绍PS结合3D马克斯三羊开泰多层立体字教程做出来的效果的使用,…

一种无缝CD图像分割方法的解释

一种无缝CD图像分割方法的解释

图像分割,解释,方法,电脑软件,CD,本教程是将CD图像无缝分割给朋友的一种方法。本教程既实用又基础。当我从初级朋友那里学习时,我建议像你这样的朋友一起学习,希望能帮助你。 今天,我想分享一种无缝分割CD图像给朋友的方法。这是非常实际和困…

动态网页技术

动态网页技术

动态网页,技术,电脑软件,1。servlet简介: 随着互联网技术的逐渐普及和互联网需求的提高,旧的静态网页已不再适应。我们看到,今天的网页不仅是Flash,视频,等等,但很明显。 在过去,静态网页显示是无法解决的。为了解决这个问题,太阳公司提供了一个解…

PS合成逼真图形冷变压器机器人的效

PS合成逼真图形冷变压器机器人的效

图形,逼真,变压器,效果,电脑软件,本教程是介绍变压器机器人的效果图,用ps合成酷现实教程,综合效果很酷,但是课程很难,要求学习者有ps基础,有一些推荐在这里,一起学习吧。 本教程介绍变形金刚机器人朋友PS合成逼真的效果图酷的过程,本教程介绍难图…

Javascript实现获取浏览器版本,即操作系统

Javascript实现获取浏览器版本,即操作系统

浏览器版本,类型,操作系统,电脑软件,Javascript,代码很简洁,功能很实用,这里没有太多的废话,直接给大家上代码: *由管理员创建的15-1-12。 * / 函数的BroswerUtil(){ } broswerutil = { { 检测浏览器版本 getbrowserversion:函数(){ VaR剂= navigato…

如何面对psPS字符的人脸教程

如何面对psPS字符的人脸教程

教程,字符,的人,电脑软件,psPS,很多朋友经常使用PS图象处理软件软件知道PS不仅具有强大的功能,如图片的修饰,但也有不断变化的背景,在现有的图片人的功能。因此如何图PS的脸下面小编就为大家带来新的人物PS教程,一看 在照片的后期处理中,我们经…

获取两个JSP页面父页面子页面内容

获取两个JSP页面父页面子页面内容

方法,父页面,两种,页面,两个,规格:两个jsp页面,父页面需要子页面的内容,但子页面是隐藏的,具体地说,是一系列的子页面的父页面模板,通过ID来获得这些模板,不愿意进口,因为如果模板太多,导致整个父页面太大缓慢的加载,采用以下两种方法,我想知道有没有…

烟花沟的铺垫:枝繁叶茂的树木不再是

烟花沟的铺垫:枝繁叶茂的树木不再是

枝繁叶茂,难事,树木,烟花,电脑软件,当我们处理图片时,我们经常会遇到更复杂多变的图形,例如,在树下,怎样才能让席子最安心呢很明显,你不能再次使用电缆套工具沿边缘,除非你想照亮所有的头发。 当我们处理图片时,我们经常会遇到更复杂多变的图形,例…