2016-06-29 2 views
3

Ajax запрос вызывает ниже действия которого ответ JSON:отключить html_entities_encode в GridView Widget в Yii2

\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 Widget:

<?= 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 значение имени шаблона. Для Eg: тест на < A HREF = " test.php " > тест </а >

и это делает в браузере: This picture shows how it renders at browser

мне не нужно эту кодировку. Пожалуйста, помогите мне решить эту проблему.

ответ

3

вы должны использовать формат => сырой

<?= 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', 
    ], 
]); ?> 
Смежные вопросы