[Php] लिंक के रूप में ग्रिड दृश्य पंक्ति, Yii2 में एक्शन कॉलम आइटम को छोड़कर


Answers

फ़िल्टर कॉलम पर ईवेंट ट्रिगर करने से बचने के लिए मैं नीचे जावास्क्रिप्ट का उपयोग करने की सलाह देता हूं।

<?php
$this->registerJs("
    $('td').click(function (e) {
        var id = $(this).closest('tr').data('id');
        if (e.target == this && id)
            location.href = '" . Url::to(['thread/view']) . "?id=' + id;
    });
");

या

<?php
$this->registerJs("
    $('tbody td').css('cursor', 'pointer');
    $('tbody td').click(function (e) {
        var id = $(this).closest('tr').data('id');
        if (e.target == this)
            location.href = '" . Url::to(['thread/view']) . "?id=' + id;
    });
");
Question

जब मैं नीचे कोड का उपयोग करता हूं तो यह एक्शन-कॉलम हटाने / अपडेट लिंक को ओवरराइड करता है।

'rowOptions' => function ($model, $key, $index, $grid) {
    return [
        'id'      => $model['id'], 
        'onclick' => 'location.href="' 
            . Yii::$app->urlManager->createUrl('accountinfo/update') 
            .'?id="+(this.id);',
    ];
},

जैसा कि मेरे पास कई स्तंभ हैं, प्रत्येक स्तंभ में नीचे दिए गए कोड का उपयोग करने के बजाय एक स्थान पर लिंक यूआरएल निर्दिष्ट करना अच्छा होगा:

 'value' => function ($data) {
                return Html::url('site/index');
            }

तो क्या ऐड्रेस कॉलम को छोड़कर ग्रिडव्यू में पूरी पंक्ति के लिए लिंक देने का कोई सर्वोत्तम तरीका है?

संपादित करें: पूर्ण ग्रिडव्यू

GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel'  => $searchModel,
    'rowOptions'   => function ($model, $index, $widget, $grid) {
        if ($widget == 1)
            return [
                'id' => $model['id'], 
                'onclick' => 'location.href="'
                    . Yii::$app->urlManager->createUrl('accountinfo/update') 
                    . '?id="+(this.id);'
            ];
    },
    'columns'      => [
        ['class' => 'yii\grid\SerialColumn'],

        // 'id',
        'f_name',
        'l_name',
        'address',
        'country',
        'state',
        'city',
        'pincode',
        [
            'attribute' => 'status',
            'value'     => function ($model, $key, $index, $column) {
                return $model->status == '1' ? 'Enabled' : 'Disabled';
            },
            'filter'    => [1 => 'Enabled', 0 => 'Disabled'],
        ],
        'card',
        'note',
        'balance',
        'is_new',
        [
            'attribute' => 'is_new',
            'value'     => function ($model, $key, $index, $column) {
                return $model->is_new == '1' ? 'Yes' : 'No';
            },
            'filter'    => [1 => 'Yes', 0 => 'No'],
        ],
        [
            'class'    => 'yii\grid\ActionColumn',
            'template' => '{update}&nbsp;&nbsp;{delete}',
        ],
    ],
]);



[
    'attribute'=>'website',
    'format' => 'raw',
    'value'=>function ($data) {
    $wsite = Agents::find()
             ->all();
    return Html::a(Html::encode($wsite[0]->website), $wsite[0]->website);
     },
    'label'=>'Website',
    'vAlign'=>'middle',
    'width'=>'150px',             
],