Добрый день. Есть 2 таблицы: партии и продукты, в партиях есть поле ID_product, по которому они связаны. В грид вывожу партии, через связь вывожу название продукта вместо айдишника, все выводится нормально, работает сортировка для всех полей, в т.ч. и для связанного. Проблема в фильтрации: для обычных полей все работает, для связанного поля - название продукта - никак не отображается input фильтра. Подскажите, пожалуйста, в чем проблема? Сортировка выглядит так, она рабочая: Код (Text): $dataProvider->setSort([ 'attributes' => [ 'productsIDProduct.name' => [ 'asc' => ['products.name' => SORT_ASC], 'desc' => ['products.name' => SORT_DESC], 'label' => 'Продукт' ], 'shipping_price', 'storage_life', ] ]); $query->joinWith(['productsIDProduct']); gii сгенерировал в модели search такое, фильтр для этих полей работает: Код (Text): $query->andFilterWhere([ ............. 'shipping_price' => $this->shipping_price, 'storage_life' => $this->storage_life, .............. ]); Пытаюсь для связанного поля сделать так - безрезультатно: Код (Text): ->andFilterWhere(['like', 'productsIDProduct.name', $this->productName]); В самом гриде: Код (Text): <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'id'=>'usong-grid', 'tableOptions' => [ 'class' => 'table table-hover table-condensed table-bordered mytab_', ], 'columns' => [ ['class' => 'yii\grid\SerialColumn'], [ 'attribute' => 'productsIDProduct.name', 'value' => function($model) { return $model->productsIDProduct->name; } ], 'shipping_price', 'storage_life',
У меня прописано Код (Text): class ConsignmentsSearch extends consignments { public $productName; /** * @inheritdoc */ public function rules() { return [ [['productName'],'safe'], [['ID_consignment', 'actually_in_stock', 'count_in_consignment', 'defective_products', 'Products_ID_product', 'WasDel', 'Categories_ID_category'], 'integer'], [['arrived', 'storage_life'], 'safe'], [['parish_price', 'product_price_in_consignment', 'shipping_price'], 'number'], ]; } Вы это имели в виду?
И как по вашему программа "узнает", что свойство productName должно быть сопоставлено с атрибутом grid-а "productsIDProduct.name"?
Расписан же такой случай в доке: http://www.yiiframework.com/doc-2.0/guide-output-data-widgets.html#working-with-model-relations --- Добавлено --- Я бы даже сказал, разжёван.