解决后, 该另一个问题 ,我们现在想检查验证的用户可以查看,更新或删除现有记录。 由于checkAccess()
默认情况下,在全称为restAction
S中的以下似乎是最逻辑的事情尝试:
public function checkAccess($action, $model = null, $params = []) {
if(in_array($action, ['view', 'update', 'delete'])) {
if(Yii::$app->user->identity->customer->id === null
|| $model->customer_id !== Yii::$app->user->identity->customer->id) {
throw new \yii\web\ForbiddenHttpException('You can\'t '.$action.' this item.');
}
}
}
但API似乎忽略这个功能。 我们在控制器中添加此功能。 这些动作(查看,更新和删除)是默认restAction
秒。
我们BaseController
设置这样的动作:
...
'view' => [
'class' => 'api\common\components\actions\ViewAction',
'modelClass' => $this->modelClass,
'checkAccess' => [$this, 'checkAccess'],
'scenario' => $this->viewScenario,
],
...
难道我们忘了点什么?