【问题标题】:Yii Framework GridView functionYii 框架 GridView 功能
【发布时间】:2017-03-06 11:24:24
【问题描述】:

如何在 GridView 中的任何行项目上添加 URL 链接?

    <?= 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 但没有运气。

【问题讨论】:

    标签: php gridview yii


    【解决方案1】:

    假设您需要电子邮件字段上的链接,并且此链接适用于您的控制器/您的操作/电子邮件
    在您的列中,您可以使用 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',
    

    如果你需要 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',
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多