моя проверка на стороне клиента не работает после создания сценариев. он отлично работает перед созданием сценария. у меня есть два сценария обновления и создания, у меня есть два обязательных поля для сценария создания и одно поле, которое требуется для сценария обновления моя модель
class BaseBroadcast extends BaseActiveRecord
{
const SCENARIO_UPDATE = 'update';
const SCENARIO_CREATE = 'create';
/**
* @inheritdoc
*/
public function rules()
{
return [
[
[
'freight_charges_unit',
'requested_response_date',
'close_reason'
],
'required'
],
......
];
}
/**
* @return array
*/
public function scenarios(): array
{
parent::scenarios();
return [
self::SCENARIO_UPDATE => ['close_reason'],
self::SCENARIO_CREATE => ['freight_charges_unit','requested_response_date']
];
}
}
и я использовал сценарий создания, например
$model = new Broadcast();
$model->scenario = Broadcast::SCENARIO_CREATE;
этот и сценарий обновления, например
$model = Broadcast::findOne(['id' => $id]);
$model->scenario = Broadcast::SCENARIO_UPDATE;
это.
я включил проверку на стороне клиента в своих формах
<?php $form = ActiveForm::begin(['action' => ......,
'enableClientValidation' => true,]) ?>
'enableClientValidation' => true
- это значение по умолчанию, и эта строкаparent::scenarios();
ничего не делает. В любом случае, не могли бы вы показать код действия контроллера, который работает на этой модели? - person Bizley   schedule 26.04.2017public function actionClose($id) { $model = Broadcast::findOne(['id' => $id]); $model->status = Broadcast::STATUS_CLOSED; $model->scenario = Broadcast::SCENARIO_UPDATE; if ($model->load(post()) && $model->update(true, ['close_reason', 'status'])) { \setFlash('success', Yii::t('company', 'Broadcast Closed Successfully!!!')); return $this->redirect(Yii::$app->request->referrer); } return $this->render('_closeReasonForm', ['model' => $model]); }
- person Ajith Lal   schedule 26.04.2017post()
, но выглядит нормально. Можешь показать и_closeReasonForm
? Обновите вопрос с ним, трудно читать код без форматирования. - person Bizley   schedule 26.04.2017