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