2017-03-06 3 views
1

GridViewにあるすべての行アイテムにURLリンクを追加するにはどうすればよいですか?Yii Framework GridView関数

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'columns' => [ 
     'email:email', 
     'vat_code', 
     'code', 
     'company', 
     'country', 
     'city', 
     'address', 
     'phone', 
     'name', 
     ['class' => 'yii\grid\ActionColumn', 
      'template' => '{update} {delete}', 
      'buttons' => ['update' => function ($url, $model) { 
       $url = Yii::$app->urlManager->createUrl(['user/update', 'id' => substr($url, strpos($url, 'id=')+3, strlen($url)), 'type' => substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], 'user/')+5, 8)]); 
       return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [ 
        'title' => Yii::t('app', 'Update'),]); 
      }, 
       'delete' => function ($url, $type) { 
        $url = Yii::$app->urlManager->createUrl(['user/delete', 'id' => substr($url, strpos($url, 'id=')+3, strlen($url)), 'type' => substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], 'user/')+5, 8)]); 
        return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, [ 
         'title' => Yii::t('app', 'Delete'),]); 
       }], 
     ], 
], 
]); ?> 

鉛筆アイコンの操作欄と同じ編集用URLをメール行に追加する必要があります。私はYii 2.0バージョンを使用します。

私はこれをこのように実装しようとしました:Add column as link in CGridView しかし運はありません。あなたは電子メールフィールド上のリンクを必要とし、このリンクを使用して、value属性と匿名関数

use yii\helpers\Url; 


..... 

'columns' => [ 
     [ 
      'attribute' => 'email', 
      'label' => 'Email', 
      'format' => 'raw', 
      'value' => function ($model) {      
       return "<a href='" . Url::to(['yourcontroller/youraction', 
       'email'=>$model->email]) . " 
      ' >". $model->email ." </a>"; 
      }, 
     ], 
     'vat_code', 
     'code', 

し、必要な場合に使用することができます列にyourcontroller/youraction /メール
のためであると仮定すると

答えて

1

id

'columns' => [ 
     [ 
      'attribute' => 'email', 
      'label' => 'Email', 
      'format' => 'raw', 
      'value' => function ($model) {      
       return "<a href='" . Url::to(['yourcontroller/youraction', 
        'id'=>$model->id]) . " 
      ' >". $model->id ." </a>"; 
      }, 
     ], 
     'vat_code', 
     'code', 
+0

大変ありがとうございます。 – The50

+0

答えが更新されました – scaisEdge