yii2 的 restful 接口的默认 帮我们实现了 curd,可是我要怎么添加自定义方法呢,下面以添加一个 搜索方法为例介绍.
1 打开 NewsController,添加 actionSearch 方法
<?php
namespace api\modules\v1\controllers;
use api\models\News;
class NewsController extends \yii\rest\ActiveController
{
public $modelClass = 'api\models\News';
public function actionSearch($keyword){
if(!$keyword){
return null;
}
$models = News::find()->where(['like', 'title', $keyword])->all();
return $models;
}
}
2 访问搜索方法
URL : http://api.baojia.local/v1/news/search/111
纳尼? 找不到方法?
3 修改 urlMangager,增加一条 rule
<?php
return [
......
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => 'v1/news',
'extraPatterns' => [
'GET search/<keyword>' => 'search',
]
],
],
......
];
收工!!!