1. 重写actions

public function actions()
{
$actions = parent::actions();
unset($actions['index']);
// unset($actions['delete']);
return $actions;
}

public function actionIndex()
{
$modelClass = $this->modelClass;
return new ActiveDataProvider(
[
'query' => $modelClass::find(),
'pagination' => ['pageSize' => 5],
'sort' => [
'defaultOrder' => [
'id' => SORT_DESC
]
]
]
);
}

 

这里先得到所有支持的actions,可以注销掉一些,比如不提供删除,更新之类,这边index也注销,重写了index的action,使用分页的方式来提供API数据

wx.request({
url: 'http://localhost:8080/articles',
header: {
'Content-Type':'application/json'
},
method: 'GET',
data:{
page:1
},
success:function(res) {
// page.setData({motto:res.data.content})
console.log(res.data)
}
})

客户端就支持传入page来取得具体一页的数据了。

2.自定义action

public function actionSearch(){
return Article::find()->where(['like','title', $_POST['keyword']])->all();
}
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
['class' => 'yii\rest\UrlRule',
'controller' => 'article',
'extraPatterns' =>[
'POST search' => 'search'
]

],

],
],

还需要在配置里的urlManager 里加extraPatterns

客户端就可以使用搜索了

wx.request({
url: 'http://localhost:8080/articles/search',
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
method: 'POST',
data: {
keyword: '视频'
},
success: function (res) {
console.log(res.data)
}
})

在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 例如: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。