1648053976 2012-02-22 11:55:03 3080次浏览 2条回复 0 0 0

想问下 template 当中 可以运行 php吗 我想实现 有的栏目id 显示{upload}有的栏目id不行

array(
    'class'=>'CButtonColumn',
    'header'=>'control',
    'buttons' => array(
        'upload'=>array(
            'imageUrl'=>Yii::app()->request->baseUrl."/resources/images/upload-pic.png",
            'url'=>'array("images/admin","aid"=>$data->id)',   		
        ),		
        'update'=>array(
            'label'=>'up',
            'url'=>'array("update","id"=>$data->id,"tid"=>$data->typeid)',
        ),
        'delete'=>array(
            'label'=>'down',
         'url'=>'array("delete","id"=>$data->id,"tid"=>$data->typeid)',	   			
        ),
    ),		

    'template'=>'{upload},{update},{delete}'			
),
  • 回复于 2012-02-22 14:58 举报
    array(
        'class'=>'CButtonColumn',
        'header'=>'control',	
        'buttons' => array(	       
            'upload'=>array(
                'imageUrl'=>Yii::app()->request->baseUrl."/resources/images/upload-pic.png",
                'url'=>'array("images/admin","aid"=>$data->id)',
                'visible'=>'$data->isupload==1?true:false',	     
            ),		
            'update'=>array(
                'label'=>'up',
                'url'=>'array("update","id"=>$data->id,"tid"=>$data->typeid)',
    		   		
            ),
            'delete'=>array(
                'label'=>'down',
                'url'=>'array("delete","id"=>$data->id,"tid"=>$data->typeid)',   			
            ),
        ),		
             
        'template'=>'{upload},{update},{delete}',		
    ),
    

    加了这一段就ok了
    'visible'=>'$data->isupload==1?true:false',

    一开始这样加的
    'visible'=>'$data->isupload==1?"true":"false"',

    怪不得没用 都是字符串
    一直找到 CComponent.php 底下有个这个 eval

    public function evaluateExpression($_expression_,$_data_=array())
    {
        if(is_string($_expression_))
        {
            extract($_data_);
            return eval('return '.$_expression_.';');
        }
        else
        {
            $_data_[]=$this;
            return call_user_func_array($_expression_, $_data_);
        }
    }
    
  • 回复于 2012-02-24 14:40 举报

    template属性是字符串,应该不可以执行php代码。
    但是有个visibility 或 visible 属性可以实现你想要的

您需要登录后才可以回复。登录 | 立即注册