= Yii 2 Scenarios = Create scenarios in model: class Customer extends \yii\db\ActiveRecord { // Scenarios const SCENARIO_NOTES_UPDATE = 'notes_update'; //... /** * @inheritdoc */ public function rules() { return [ //... // notes is required in "notes_update" scenario [['id', 'notes'], 'required', 'on' => self::SCENARIO_NOTES_UPDATE], // list all fields required in scenario ]; } public function scenarios() { $scenarios = parent::scenarios(); $scenarios[self::SCENARIO_NOTES_UPDATE] = ['notes']; // required fields for this scenario return $scenarios; } } Create a model using a specific scenario: class CustomerController extends Controller { //... public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ 'actions' => [ //... 'update-notes', ], 'allow' => true, 'roles' => ['@'], // @ = Authenticated users ], ], ], 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], ], ]; } public function actionUpdateNotes($id) { $model = $this->findModel($id); $model->scenario = Customer::SCENARIO_NOTES_UPDATE; if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id, 'tab'=>'notes']); } else { return $this->render('update-notes', [ 'model' => $model, ]); } } } Create a view that uses the scenario: title = Yii::t('app', 'Update Customer Notes') . ': ' . $model->account_number. ' ' . $model->company_name; $this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Customers'), 'url' => ['index']]; $this->params['breadcrumbs'][] = ['label' => $model->account_number, 'url' => ['view', 'id' => $model->id]]; $this->params['breadcrumbs'][] = Yii::t('app', 'Update Notes'); ?>

title) ?>


field($model, 'notes')->textarea(['rows' => 20]) ?>
isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> isNewRecord ? Html::a(Yii::t('app', 'Cancel'), ['view', 'id' => $model->id, 'tab'=>'notes'], ['class' => 'btn btn-default']) : '') ?>
== References == * [[http://www.bsourcecode.com/yiiframework2/yii2-0-scenarios/|Yii 2.0 Scenarios]] * [[http://www.yiiframework.com/doc-2.0/guide-structure-models.html#scenarios|Yii 2.0 Guide: Scenarios]]