创建场景后,我的客户端验证不起作用。在创建场景之前它工作正常。我有两个场景更新和创建,创建场景需要两个字段,更新场景 需要一个字段我的模型
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,]) ?>