Yii gridview使用值函数

时间:2014-09-03 21:19:22

标签: yii

我正在尝试使用我添加到admin.php

中的控制器的函数

这是代码

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'articles-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
            'DocType',
            array(
              'type' => 'image',
              'value' => $this->getArticleImage($data->PageImage),
            ),
            array(
                    'class'=>'CButtonColumn',
            ),
    ),

));

getArticlesImages在视图php中运行得很完美,但在这里我不知道是否可以使用它....

在getArticleImage中,我使用字段PageImage的一些信息来重新创建正确的外部路径,

任何想法?

非常感谢

2 个答案:

答案 0 :(得分:4)

试试这个:

array(
    'type' => 'image',
    'value' => 'Yii::app()->controller->getArticleImage($data->PageImage)',
),

它应该有用。

答案 1 :(得分:3)

Yii class reference引用文档,值必须是字符串:

  

将使用evaluateExpression为每个数据单元计算的PHP表达式,其结果将呈现为数据单元格的内容。

一个好的做法是使用&#34;查看助手&#34;,即一组静态方法,来放置getArticleImage功能,这样你就可以保持视图清洁和轻盈。

查看助手:

<?php
class ArticleViewHelper
{
    public static function getArticleImage($article)
    {
        return  ... your code goes here
    }
}

然后从列定义中调用它:

array(
    'type'  => 'image',
    'value' => 'ArticleViewHelper::getArticleImage($data)',
)

这样可行。