我正在使用Yii2创建RESTful API,并已按照快速入门教程*成功设置了名为Contacts的模型。我喜欢如何在不创建任何动作的情况下创建,列出,更新和删除记录。
但是我看不到如何过滤结果。我只想返回contact.user_id等于1的联系人(例如),因为它当前将回复所有记录。不创建动作就可以吗?
我也不确定如何限制结果。从我看过的内容来看,我觉得应该在URI后面加上?limit = 5。
您应该返回一个数据提供程序,而不是一组支持分页的对象。也许这种方法会更有用:
public function actionIndex()
{
return new \yii\data\ActiveDataProvider([
'query' => Contact::find()->where(['user_id' => \Yii::$app->user-id]),
]);
}
Run Code Online (Sandbox Code Playgroud)
您也可以保持index操作不变,但为预设操作提供prepareDataProvider-callback:
public function actions()
{
$actions = parent::actions();
$actions['index']['prepareDataProvider'] = function($action)
{
return new \yii\data\ActiveDataProvider([
'query' => Contact::find()->where(['user_id' => \Yii::$app->user-id]),
]);
};
return $actions;
}
Run Code Online (Sandbox Code Playgroud)
希望能有所帮助。
| 归档时间: |
|
| 查看次数: |
3986 次 |
| 最近记录: |