configure action
/** * {@inheritdoc} */ public function actions() { return [ 'index' => [ 'class' => 'yii\rest\IndexAction', 'modelClass' => $this->modelClass, 'checkAccess' => [$ this, 'checkAccess'], 'dataFilter'=>['class' => 'yii\data\ActiveDataFilter','searchModel'=>['class'=>'common\models\TableSearch']], ], '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', ], ]; }
The key is the dataFilter of index
Either ActiveDataFilter or DataFilter can be used, but ActiveDataFilter should support more complex query methods.
Then write like this when requesting
http://localhost:9104/table?filter[table_id]=1
The filter parameter specifies the query expression. For the specific format, please refer to the where() method of query.