в фильтрах andFilterWhere?vitalik1183 писал(а):разумеется. выводите так же. relation.field
relation - имя связи
field - поле, что нужно вывести
или в value фильтре?
не догоняю
в фильтрах andFilterWhere?vitalik1183 писал(а):разумеется. выводите так же. relation.field
relation - имя связи
field - поле, что нужно вывести
Код: Выделить всё
'value' => 'relation.field'
вывожуvitalik1183 писал(а):Вам нужно вывести название в ячейке в таблице?
Вам нужно указать это в виде(в гриде):Код: Выделить всё
'value' => 'relation.field'
Код: Выделить всё
'value' => 'severMapArtcats.id_cat',
Код: Выделить всё
(не задано)
так тоже "(не задано)"vitalik1183 писал(а):Ну если у вас категории в 3 таблице то так
relation.relation_cat.name
Код: Выделить всё
'value' => 'severMapArtcats.severCategory.name'
Код: Выделить всё
['class' => 'yii\grid\SerialColumn'],
'severMapArtcats.severCategory.name'
вот как работает =vitalik1183 писал(а):Ну если у вас категории в 3 таблице то так
relation.relation_cat.name
Код: Выделить всё
'value' => function ($model) {
$art = SeverArticle::findOne($model->id_art);
$item = $art->items;
return $item[0]->name;
},
Код: Выделить всё
public function getItems()
{
return $this->hasMany(SeverCategory::className(), ['id_cat' => 'id_cat'])
->viaTable('sever_map_artcat', ['id_art' => 'id_art']);
}
в контексте какого момента моего кода?vitalik1183 писал(а):почитайте про with
http://www.yiiframework.com/doc-2.0/gui ... er-loading
Код: Выделить всё
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
получаюvitalik1183 писал(а):Код: Выделить всё
$dataProvider = new ActiveDataProvider([ 'query' => $query, ]);
Код: Выделить всё
Call to a member function andFilterWhere() on a non-object
Код: Выделить всё
$query = SeverArticle::find();
$query = $query->with('severMapArtcats')->all();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
сделал - выборка прошла удачноvitalik1183 писал(а):В провайдере нельзя использовать all()
Уберите его. Прямо к query и подпишите with с указанием связей.
Код: Выделить всё
'value' => 'severMapArtcats.id_cat',
Код: Выделить всё
'value' => function ($data) {
return $data->id_cat;
},
нет не понял...vitalik1183 писал(а):Оставьте как у вас было. Добавьте with и сравните кол-во запросов с ним и без него. Вы поняли идею этого метода?
Пожалуйста, разберитесь в примере и все встанет на свои места.By calling yii\db\ActiveQuery::with(), you instruct Active Record to bring back the orders for the first 100 customers in one single SQL statement. As a result, you reduce the number of the executed SQL statements from 101 to 2!
это я понялvitalik1183 писал(а):By calling yii\db\ActiveQuery::with(), you instruct Active Record to bring back the orders for the first 100 customers in one single SQL statement. As a result, you reduce the number of the executed SQL statements from 101 to 2!
встало методом научного тыкаvitalik1183 писал(а):все встанет на свои места.
Код: Выделить всё
'value' => 'items.0.name',
Код: Выделить всё
'value' => 'items.name',