Не работают встроенные фильтры связанных таблиц Yii2
Имеется запрос: /api/table1?expand=table2&filter[table2Name][like]=a. 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;
}
Модель поиска Table1Search имеет правила + добавлено свойство класса public $table2Name (в rules прописано оно). В самой модели Table1 есть отношение к Table2. Когда я делаю запрос, то получаю вот такой ответ: SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "table2". Действительно, в запросе нет JOIN для table2.
Посмотрел исходит для 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);
}
Никакого намека на JOIN.
Хотя в документации четко написано:
[
'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
]
Что не так?