2016-11-17 72 views
0

我正在使用Yii2制作REST API。在更新过程中的Put请求方法中,我想限制用户不能更新他/她的电子邮件地址。有没有一种方法可以实现这一目标?现在,当用户使用更改的电子邮件地址发送放入请求时,电子邮件地址会发生更改限制某些属性的更新Yii2

+1

这可能会帮助你http://stackoverflow.com/questions/30372778/how-to-set-属性作为不安全的 - 在宁静 - yii2 –

回答

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; 
} 
+0

你能否详细说明? – james

+0

谢谢。只是模型中的一点修改。它应该是public $ updateScenario,而不是public $ createScenario。 – james