微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-在Yii2的GridView窗口小部件中禁用html_entities_encode

这个问题已经在这里有了答案:            >            URL in yii2 gridview                                    7个
一个ajax请求将调用以下操作,其响应为JSON:

\Yii::$app->response->format = 'json';

if($userId){
    $dataProvider = new ArrayDataProvider([
        'allModels' => Templates::getTemplates($userId,'n'),
    ]);

    $response = $this->renderAjax('index', ['dataProvider' => $dataProvider,]);
    return ['status'=>true,'data'=>$response,'total'=>count($dataProvider)];
}

鉴于此操作,有一个GridView小部件:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',
        [
            'attribute'=>   'template_name',
            'label'=>'Test Name',
            'value' => function($data){
                $url = Yii::$app->urlManager->createUrl('templates/get-tests')."&id=".$data->id;
                return '<a href="'.$url.'" title="'.Html::encode($data->template_name).'">'.Html::encode($data->template_name).'</a>';
            }

        ],
        [
            'attribute'=>   'template_date',
            'label'=>'Beginning Date'
        ],
        [
            'attribute'=>   'template_expire_time',
            'label'=>'End Date'
        ],
        'user_id',
    ],
]); ?>

但这会编码模板名称的html值.例如:测试< a href =“ test.PHP”> test< / a>

这将在浏览器中呈现:

This picture shows how it renders at browser

我不需要这种编码.请帮我解决这个问题.

解决方法:

您应该使用format =>生的

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',
        [
            'attribute'=>   'template_name',
            'label'=>'Test Name',
            'format' => 'raw',
            'value' => function($data){
                $url = Yii::$app->urlManager->createUrl('templates/get-tests')."&id=".$data->id;
                return '<a href="'.$url.'" title="'.Html::encode($data->template_name).'">'.Html::encode($data->template_name).'</a>';
            }

        ],
        [
            'attribute'=>   'template_date',
            'label'=>'Beginning Date'
        ],
        [
            'attribute'=>   'template_expire_time',
            'label'=>'End Date'
        ],
        'user_id',
    ],
]); ?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐