yii-應用結構-model-場景
阿新 • • 發佈:2019-01-11
0.模型可能在多個 場景 下使用,
例如 User
模組可能會在收集使用者登入輸入, 也可能會在使用者註冊時使用。
在不同的場景下, 模型可能會使用不同的業務規則和邏輯,
0.1模型使用 yii\base\Model::$scenario 屬性保持使用場景的跟蹤
模型支援的場景由模型中申明的 驗證規則 來決定,
但你可以通過覆蓋yii\base\Model::scenarios()方法來自定義行為,
1.yii-application\backend\web\index.php
$model = new User; echo $model->scenario = 'login'; echo '<br/>';
echo "<pre>";
var_dump($model->scenarios());
echo "</pre>";
2.yii-application\backend\models\user.php
const SCENARIO_LOGIN = 'login'; const SCENARIO_REGISTER = 'register'; public function scenarios() { return [ self::SCENARIO_LOGIN => ['username', 'password'], self::SCENARIO_REGISTER => ['username', 'email', 'password'], ]; }
3.測試:http://y2aa-backend.test/index.php
login
array(2) { ["login"]=> array(2) { [0]=> string(8) "username" [1]=> string(8) "password" } ["register"]=> array(3) { [0]=> string(8) "username" [1]=> string(5) "email" [2]=> string(8) "password" } }