2016-11-17 74 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