Всем привет! Пытаюсь сделать фильтрацию в gridview но почему то не появлятеся поле поиска в столбце где отображаются связанные данные. А именно где вывожу Фамилию!Не подскажите
в чем может быть проблема?
Возможно что то не так, в модели поиска? (Я не уверен)
<?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;
}
}