Как задать аттрибут из связанной таблицы в столбце GridView Yii2
Есть 2 таблицы Товары и Инструкции - связаны один-к-одному (так надо было - товар б/у-шный) - каждому товару соответствует одна инструкция. Есть таблица Товары (выводится в GridView) - там выводятся параметры - цена, название, магазин где товар в наличии и пр. но нужно сделать колонку с типом подключения 110В / 220В / 380В - но этот параметр в связанной таблице - Инструкция. Как добавить колонку - напряжение в параметр attribute. Еще хотелось бы добавить колонку - дата выпуска - с DatePickerом - он тоже в таблице - Инструкция.
[
'format' => 'raw',
'label' => 'Тип напряжения',
'value' => function ($model) {
$manual = $model->manual;
if(!empty($manual->voltage)) {
return $manual->voltage
}
return '';
},
],
Ответы (1 шт):
В модели Product нужно создать переменную для показа доп поля
public $voltage;
public function attributeLabels()
{
return [
....
'voltage' => Yii::t('app', 'Voltage'),
....
],
}
В GridView:
[
'attribute' => 'voltage',
'value' => function($model) {
return $model->manual->voltage;
}
],
Если связи правильно настроены так заработает (->manual-> - это название связи в модели Product) без валидации по полю, чтобы работала валидация - вам сюда https://p0vidl0.info/yii2-sortirovka-i-filtr-gridview-po-svyazannym-i-vychislyaemym-polyam.html