Вы наследуетесь от ActiveController, что создает методы из коробки в методе
actions
public function actions()
{
return [
'index' => [
'class' => 'yii\rest\IndexAction',
'modelClass' => $this->modelClass,
'checkAccess' => [$this, 'checkAccess'],
],
'view' => [
'class' => 'yii\rest\ViewAction',
'modelClass' => $this->modelClass,
'checkAccess' => [$this, 'checkAccess'],
],
'create' => [
'class' => 'yii\rest\CreateAction',
'modelClass' => $this->modelClass,
'checkAccess' => [$this, 'checkAccess'],
'scenario' => $this->createScenario,
],
'update' => [
'class' => 'yii\rest\UpdateAction',
'modelClass' => $this->modelClass,
'checkAccess' => [$this, 'checkAccess'],
'scenario' => $this->updateScenario,
],
'delete' => [
'class' => 'yii\rest\DeleteAction',
'modelClass' => $this->modelClass,
'checkAccess' => [$this, 'checkAccess'],
],
'options' => [
'class' => 'yii\rest\OptionsAction',
],
];
}
Так, что запрос по типу back.ru/rest/10 - выводит детальную инфу по записи, а именно ActionView
Для того, что бы вам сделать фильтрацию такого вида как вы написали необходимо переопределить метод index или view в зависимости от того в котором нужно фильтровать, можна сделать с помощью callback.
'dataFilter' => [
'class' => 'yii\data\ActiveDataFilter',
'searchModel' => 'path/To/Search,
],
В этом случае вы сохраните возможность фильтровать за дефолтом как сделано в YII2.
В вашем же случае можно сделать так, переопределить prepareDataProvider(), а в самом методе:
$searchModel = new \app\models\SearchModel();
return $searchModel->search(\Yii::$app->request->queryParams);
Если детально, то:
Можно переопределить prepareDataProvider для действия index.
public function actions()
{
$actions = parent::actions();
$actions['index']['prepareDataProvider'] = [$this, 'prepareDataProvider'];
return $actions;
}
public function prepareDataProvider()
{
$searchModel = new \app\models\SearchModel();
$dataProvider = $searchModel->search(\Yii::$app->request->queryParams);
return $dataProvider;
}