2016-06-29 1 views
3

Une demande ajax appelle une action ci-dessous dont la réponse est JSON:html_entities_encode désactiver dans GridView Widget dans 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)]; 
} 

Dans la vue de cette action, il y a un 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', 
    ], 
]); ?> 

Mais cette code la valeur html du nom du modèle. Pour exemple: test < a href = " test.php " > essai </a >

et cela rend au navigateur: This picture shows how it renders at browser

Je ne pas besoin de ce codage. Aidez-moi s'il vous plaît à résoudre ceci.

Répondre

3

vous devez utiliser le format => brut

<?= 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', 
    ], 
]); ?>