ActiveController настроен следующим образом:
Код: Выделить всё
/** @var string Модель поиска */
protected $modelSearchClass = '';
public function actions() {
$actions = parent::actions();
$actions['index']['dataFilter'] = [
'class' => ActiveDataFilter::class,
'searchModel' => $this->modelSearchClass,
'attributeMap' => [
'table2Name' => '{{%schema.table2}}.[[name]]',
]
];
return $actions;
}
Посмотрел исходит для IndexAction и там:
Код: Выделить всё
$modelClass = $this->modelClass;
$query = $modelClass::find();
if (!empty($filter)) {
$query->andWhere($filter);
}
if (is_callable($this->prepareSearchQuery)) {
$query = call_user_func($this->prepareSearchQuery, $query, $requestParams);
}
Хотя в документации четко написано:
Код: Выделить всё
[
'carPart' => 'car_part', // carPart will be used to filter car_part property
'authorName' => '{{author}}.[[name]]', // authorName will be used to filter name property of joined author table
]