Yii2 Detail View中Gridview代码的写法

How to write Gridview code in Yii2 Detail View

在这里我想把我的问题解释清楚,

下面的代码用于存储附件地址,在 gridview 中我将其设置为 link,因此如果我单击 link 它将显示位于link

这是网格视图代码:

          [
             '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;
                 }
            ],

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

更新: 从 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
    ],
]);

类似的问题是