В этой записи, я покажу как сделать ряд в GridView виджете кликабельным, т.е. при нажатии на ряд, ваc будет перекидывать на детальный вид объекта.
Решение очень простое: использовать $this->registerJs()
внутри view файла, написать небольшой JavaScript код, который наложит событие нажатия на <td>
элементы (кроме action ссылок, по типу удаления, изменения и т.д.).
Рабочий вариант
<?php ... $this->title = 'Клибальные ряды'; $this->registerJs(" $('tbody td').on('click', function (e) { // Получить ближайший ID в <tr> из data-key атрибута var id = $(this).closest('tr').data('key'); if(e.target == this) location.href = '" . Url::to(['controller/action']) . "?id=' + id; }); ", yii\web\View::POS_END); ?> <?= GridView::widget([ ... ]); ?>
Важно
Вместо Url::to(['controller/action'])
поставьте свое название контроллера и action’а. Так же возможно придется немного поиграть с ссылкой при нажатии, но это уже на ваше усмотрение.