2016-06-29 16 views
3

Eine Ajax-Anforderung ruft eine unter Aktion, deren Antwort ist JSON:deaktivieren html_entities_encode in Gridview-Widget in 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)]; 
} 

Im Hinblick auf diese Aktion gibt es ein 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', 
    ], 
]); ?> 

Aber diese codiert den HTML-Wert des Vorlagennamens. Für zB: Test < a href = " test.php " > Test </a >

und dies macht im Browser: This picture shows how it renders at browser

Ich brauche nicht diese Codierung. Bitte hilf mir, das zu lösen.

Antwort

3

Sie sollten Format verwenden => roh

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