在 cgridview 中搜索/过滤两个连接的列 [英] Searching/filtering two concatenated columns in cgridview

查看:23
本文介绍了在 cgridview 中搜索/过滤两个连接的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

admi.php 中的 cgridview 代码

cgridview code in admi.php

array(
    'header'=>'Client Name',
        'name'=>'client_name',
        'value'=>'$data->first_name." ".$data->last_name', //or u can write also value'=>'$data->first_name.\' \'.$data->last_name', 
    ),

client.php 中的模型搜索() 类

model search() class in client.php

 public $client_name;

$criteria->compare('CONCAT(first_name,last_name)',$this->client_name,true);

连接并显示已完成,但搜索数据显示未找到结果?

Concatenation and displaying is done but seraching the data show no results found?

推荐答案

In model :

   class User extends CActiveRecord
    {
            public $fullName;
}

搜索中

$criteria->addSearchCondition('concat(first_name, " ", last_name)', $this->fullName); 

在规则()

array('..., fullName', 'safe', 'on' => 'search'),

在模型中创建了一个函数

public function getFullName()
        {
                return $this->first_name . ' ' . $this->last_name;
        }

最后将其放入您的视图:

<?php $this->widget('zii.widgets.grid.CGridView', array(

        .......
          'columns' => array(
                array(
                        'name' => 'full_name',
                        'value' => '$data->getFullName()',
                ),

                ...

这篇关于在 cgridview 中搜索/过滤两个连接的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆