如何在Yii2 Detail View中编写Gridview代码

时间:2015-08-26 05:44:51

标签: yii2 detailview

我想清楚地解释一下我的问题,

下面的代码用于存储附加的文件地址,在gridview中我将其作为链接,所以如果我点击链接它将显示链接上的文件

这是网格视图代码:

          [
             'label'=>'document_details',
             'format'=>'raw',
             'value' => function($model){
                    $data = $model->document_details;
                    $url = explode(',', $data);
                    $result = "";
                    foreach ($url as $key => $value) {
                        $result .= Html::a($value, $value);
                    }

                    return $result;
                 }
            ],

但问题是我无法在详细信息视图中执行此操作,我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

<强>更新 从版本2.0.11开始,可以使用函数实现价值。看看DetailView::$attributes

看看这位官方example。它与GridView的工作方式不同。您还可以在此处指定应考虑的属性列表。但方式不同:您没有指定获取值的函数。相反,您必须直接告诉DetailView值。你可以这样做:

function createDocDetailUrls($model) {
    $data = $model->document_details;
    $url = explode(',', $data);
    $result = "";
    foreach ($url as $key => $value) {
        $result .= Html::a($value, $value);
    }

    return $result;
}

echo DetailView::widget([
    'model' => $model,
    'attributes' => [
        //... other attributes
        [
            'label' => 'Document details',
            'format'=> 'raw'
            'value' => createDocDetailUrls($model),
        ],
        //... other attributes
    ],
]);

类似的问题是here