Добрый день, уважаемые программисты.
Интересует такой вопрос. Как получить доступ к связи из виджета GridView к связи с другой моделью?
В Yii 1.1 это делается через переменную $data. Как это сделать на Yii 2.0?
Если не трудно, прикрепите маленький объясняющий кусочек кода, буду очень благодарен
Получение доступа к связи из виджета.
Re: Получение доступа к связи из виджета.
если вы про то, как назвать колонку, то это 'relation.relationAttribute'
Re: Получение доступа к связи из виджета.
Есть функция связи в моделе связующая модели:zelenin писал(а):если вы про то, как назвать колонку, то это 'relation.relationAttribute'
Код: Выделить всё
public function getCity()
{
return $this->hasOne(City::className(), ['id' => 'city_id']);
}
Код: Выделить всё
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'name',
'mail',
'city_id',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
Если не трудно, кусочком кода, для наглядности
Re: Получение доступа к связи из виджета.
я же написал: 'city.name'AIR писал(а):Есть функция связи в моделе связующая модели:zelenin писал(а):если вы про то, как назвать колонку, то это 'relation.relationAttribute'И есть виджет во вьюхе :Код: Выделить всё
public function getCity() { return $this->hasOne(City::className(), ['id' => 'city_id']); }
Как в свойстве city_id обратиться к связи чтобы вытащить город из связанной таблицы по значению?Код: Выделить всё
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', 'name', 'mail', 'city_id', ['class' => 'yii\grid\ActionColumn'], ], ]); ?>
Если не трудно, кусочком кода, для наглядности
Re: Получение доступа к связи из виджета.
Код: Выделить всё
[
'attribute' => 'city_id',
'value' => function ($model, $key, $index, $column) { return $model->city->name; }
]