限制某些属性更新Yii2

时间:2016-11-17 09:30:02

标签: rest yii2

我正在使用Yii2制作REST API。在更新期间的Put请求方法中,我想限制用户无法更新他/她的电子邮件地址。有没有办法可以实现这个目标?现在,当用户发送带有更改的电子邮件地址的put请求时,电子邮件地址会发生变化。

1 个答案:

答案 0 :(得分:1)

使用模型方案See Model Scenarios

模型

namespace app\models;

use yii\db\ActiveRecord;

class User extends ActiveRecord
{
    const SCENARIO_API = 'API';
    const SCENARIO_OTHER = 'OTHER';

    public function scenarios()
    {
        return [
            self::SCENARIO_API => ['username', 'password'],
            self::SCENARIO_OTHER => ['username', 'email', 'password'],
        ];
    }
}

控制器:

namespace app\controllers;
use yii\rest\ActiveController;
use app\models\User;

class UserController extends ActiveController
{
    public $modelClass = 'app\models\User';
    public $createScenario = User::SCENARIO_API;
}