Вы можете сделать что-то вроде этого:
$model = new SomeForm();
if ($model->load(Yii::$app->request->post())){
if ($model->checkbox == true) $model->scenario = 'checked';
}
// your model rules:
[['name', 'email', 'subject', 'body'], 'safe', 'on' => 'checked']
или в качестве альтернативы Вы можете сделать это:
if ($model->checkbox == true) $model->save(false); //this will disable any validation so be carefull
Редактировать:если Вам нужно cliend переключатель проверки на стороне, Вы должны использовать это:
[['name', 'email', 'subject', 'body'], 'required', 'when' => function ($model) {
return $model->cancelled == '0';
}, 'whenClient' => new JsExpression("function (attribute, value) { return $('#mailform-cancelled').val() == '0';}")]
Вы можете проверить статус флажка и соответственно установить сценарий для этого – Chinmay
Что вы подразумеваете под установкой сценария? как это сделать? – beginner
Средство указывает 2 сценария: 1) проверено 2) не проверено. Когда значение флажка отмечено, установите сценарий как chekced и наоборот. Когда значение флажка не отмечено, сделайте атрибуты обязательными, установив сценарий как «непроверенный». Иначе не делайте их принудительными. Вы поняли это сейчас? – Chinmay