Здравствуйте. Как сделать ссылку в gridview я знаю, но возникла проблема с ссылкой для связанной модели.
<?php Pjax::begin(); ?> <?= GridView::widget([
'dataProvider' => $dataProvider,
'summary' => 'Показано {begin} - {end} из {totalCount} записей',
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'competition.title',
[
'attribute' => 'competition.title',
'value' => function (ACompetition $data) {
return Html::a(Html::encode($data->title), Url::to(['/' . $data->category->slug . '/' . $data->slug . '/' . $data->id]));
},
'format' => 'raw',
],
...
Само по себе 'competition.title'
работает, но вот со ссылкой не хочет, пишет такую ошибку:
Argument 1 passed to yii\base\View::{closure}() must be an instance of common\models\ACompetition, instance of common\models\AOption given
. Понимаю, что первый аргумент должен принадлежать к модели ACompetition, но что-то у меня не получается.
Подскажите пожалуйста, что не так?
Для простоты кода во view.. сделай в модели ACompetition
функцию которая возвращает нужную ссылку (код останется почти таким же как у тебя внутри функции, просто вместо $data
будешь обращаться к самой модели ($this
) назовешь её например getCompetititonHref()
, а потом во вьюшке к ней обратишься как столбцу 'competitionHref:html'
и все будет ок. В ссылке кстати не забудь отключить pjax, ['data-pjax'=>0]
иначе не будет корректно переходить. Такой подход нормальный имхо, но нужно добавить правило сортировки для поля.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйте, подскажите, пожалуйстаЗаполняю массив следующим образом и записываю его в переменную $_SESSION:
Пример: есть таблица (на картинке)Как сделать так, чтобы изменяя option_id, option_value оставался такой, какой был установлен изначально (т
ЗдравствуйтеПроблема вот в чём: есть страница пользователя