脚本宝典收集整理的这篇文章主要介绍了php – yii CGridView过滤器与关系,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
更新:
<?PHP $diaLOG = $this->widget('ext.ecolumns.EColumnsDialog',array( 'options'=>array( 'tITle' => 'Layout settings','autoOPEn' => false,'show' => 'fade','hide' => 'fade',),'htMLOptions' => array('style' => 'display: none'),//disable flush of dialog content 'ecolumns' => array( 'gridId' => 'mails-grid',//id of related grid 'storage' => 'session',//where to Store settings: 'db','session','cookie' 'fixedLeft' => array('CCheckBoxColumn'),//fix checkBox to the left side 'model' => $dataprovider,//model is used to get attribute labels 'columns'=>array( array( 'name'=>'mailTemplate.name','filter'=>CHtml::activeTextField($dataprovider,'mailTemplate'),'sendDate',array( 'name'=>'mailTemplate.subject',array( 'name'=>'client.email','client'),array( 'name'=>'client.name',array( 'name'=>'operator.username','operator'),array( 'name'=>'status','value'=>array('MailHelper','getEmailStatus'),'filter'=> CHtml::activeDropDownList($dataprovider,'status',Mail::getEmailStatuses()),array( 'class'=>'CButtonColumn','template'=>'{update}','buttons'=>array( 'update' => array( 'url'=>'$this->grid->controller->createUrl("/email/editTemplate",array("templateid"=>$data->id))',) ),) ));
?>
<?PHP $this->widget('zii.widgets.grid.CGridView',array( 'id' => 'mails-grid','dataProvider'=>$dataprovider->seArch(),'columns' => $dialog->columns(),'filter' => $dataprovider,'template' => $dialog->link()."{summary}\n{items}\n{pager}",)); ?>
模型:
public function search() { $criteria=new CDbCriteria; $criteria->together = true; $criteria->with= array('xCountry','xCity','User'); $criteria->compare('Id',$this->Id,true); $criteria->compare('Restaurant.Name',$this->Name,true); $criteria->addSearchCondition('xCountry.Name',$this->Country); $criteria->addSearchCondition('xCity.Name',$this->City); $criteria->compare('Zip',$this->Zip,true); $criteria->compare('Address',$this->Address,true); $criteria->compare('Description',$this->Description,true); $criteria->compare('Restaurant.Active',$this->Active,true); $criteria->addSearchCondition('User.Username',$this->Owner); $criteria->compare('Lat',$this->Lat); $criteria->compare('Lon',$this->Lon); return new CActiveDataProvider($this,array( 'criteria'=>$criteria,)); }
视图:
$this->widget('zii.widgets.grid.CGridView',array( 'id'=>'restaurant-grid','dataProvider'=>$model->search(),'filter'=>$model,'columns'=>array( 'Id','Name','Zip','Address','Active',array( 'name' => 'User.Username','header' => 'Username','filter' => CHtml::activeTextField($model,'Owner'),'value' => '$data->User->Username',array( 'name' => 'xCountry.Name','header' => 'Country','Country'),'value' => '$data->xCountry->Name',array( 'name' => 'xCity.Name','header' => 'City','City'),'value' => '$data->xCity->Name',array( 'class'=>'CButtonColumn',));
我希望这可以帮到你.
更新:
如果您尝试这样的事情怎么办:
... 'columns'=>array( 'mailTemplate.name','mailTemplate.subject','client.email',...
更新#2:
准备好自己这会有点脏.
假设我们有两个类,A和B. B属于A.
B有一个属性,让我们说“颜色”,我们想在我们列出“A”的网格中显示它.
您要做的第一件事是,手动为数据提供程序类创建属性(什么是“A”).
此属性将为“colorOfB”,因此您必须@L_304_18@“public $colorOfB;”你的模特A.
$criteria->compare('B.color',$this->colorOfB,true);
将列添加到网格:
array( 'name' => 'B.color','header' => 'Color of B','colorOfB'),'value' => '$data->B->color'),
最后一件事是在A的控制器中手动设置此属性:
$modelA = new A('search'); $modelA->colorOfB = $_GET['A']['colorOfB'];
以上是脚本宝典为你收集整理的php – yii CGridView过滤器与关系全部内容,希望文章能够帮你解决php – yii CGridView过滤器与关系所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。