Rest ActiveController Yii2中id为的自定义操作
正在尝试在Rest API中实现GET方法,以查询用户状态,例如GET user/:id/status 因此,获取用户id#1的状态将调用/user/1/status 在配置中,我有:Rest ActiveController Yii2中id为的自定义操作,yii2,yii2-api,Yii2,Yii2 Api,正在尝试在Rest API中实现GET方法,以查询用户状态,例如GET user/:id/status 因此,获取用户id#1的状态将调用/user/1/status 在配置中,我有: 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => [
'v1/user'
],
'extraPatterns' => [
'GET status' => 'status',
],
'tokens' => [
'{id}' => '<id:\\w+>'
],
],
],
用户控制器:
namespace api\modules\v1\controllers;
use yii\rest\ActiveController;
class UserController extends ActiveController {
public $modelClass = 'api\modules\v1\models\User';
public function actions() {
$actions = parent::actions();
unset(
$actions[ 'index' ],
$actions[ 'view' ],
$actions[ 'create' ],
$actions[ 'update' ],
$actions[ 'delete' ],
$actions[ 'options' ]
);
return $actions;
}
protected function verbs() {
return [
'status' => [ 'GET' ],
];
}
public function actionStatus( $id ) {
return 1;
}
}
但是现在我不确定如何实际返回调用的数据。Wat你的意思是我不确定如何实际返回数据?我只是在actionStatus内部查询并返回JSON吗?不确定actionStatus中应该进行哪些操作
$user = User::findOne($id);
if ($user)
return Json::encode(['success'=>true, 'data'=>$user->status]);
else
return Json::encode(['success'=>false, 'message'=>"Can't find user"]);
$user = User::findOne($id);
if ($user)
return Json::encode(['success'=>true, 'data'=>$user->status]);
else
return Json::encode(['success'=>false, 'message'=>"Can't find user"]);