@AlexSer

Почему не появляется поле поиска в gridview?

Всем привет! Пытаюсь сделать фильтрацию в gridview но почему то не появлятеся поле поиска в столбце где отображаются связанные данные. А именно где вывожу Фамилию!Не подскажите 5aacb47e34409832474111.jpegв чем может быть проблема?
Возможно что то не так, в модели поиска? (Я не уверен)
<?php

namespace frontend\models;

use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;

use frontend\models\History;

/**
 * SearchPacients represents the model behind the search form of `frontend\models\History`.
 */
class SearchPacients extends History
{
    public  $family;
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['id', 'pacient_id', 'standart_id', 'doctor_id', 'otdelenie_id', 'status_id', 'type_analiz_id', 'organization_id', 'napravlenie_id', 'lu'], 'integer'],
            [['date','family' ,'date_close'], 'safe'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function scenarios()
    {
        // bypass scenarios() implementation in the parent class
        return Model::scenarios();
    }

    /**
     * Creates data provider instance with search query applied
     *
     * @param array $params
     *
     * @return ActiveDataProvider
     */
    public function search($params)
    {
        $query = History::find();
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $dataProvider->setSort([
            'attributes' => [
                'id',
                'family' => [
                    'label' => 'Full Name',
                    'default' => SORT_ASC
                ],
            ]
        ]);

        if (!($this->load($params) && $this->validate())) {
            /**
             * Жадная загрузка данных модели Страны
             * для работы сортировки.
             */
            $query->joinWith(['pacients']);
            return $dataProvider;
        }

        //$this->addCondition($query, 'id');
     //   $this->addCondition($query, 'family', true);




        // Фильтр по стране
        $query->joinWith(['pacients' => function ($q) {
            $q->where('pacients.family LIKE "%' . $this->family. '%"');
        }]);

        return $dataProvider;
    }
}
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Доброе утро.
Необходимо чуть переписать вывод столбца с фамилией.
Как-то так
[
   'attribute' => 'family',
   'value' => 'pacient.family'
]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы