php Yii2规则验证When条件

8yoxcaq7  于 2023-02-21  发布在  PHP
关注(0)|答案(1)|浏览(262)

我有Yii 2使用echo $form-〉field生成的表单字段,当我选择“立即支付”并提交时,验证应该不会验证付款人的姓氏,但当我选择“稍后支付”并提交时,它必须按要求验证。
不管我选择什么,它总是将字段视为必填字段。我做错了什么?
选择选项:

<select id="singleregisterform-paymentoptionid" name="SingleRegisterForm[paymentOptionId]">
    <option value="1">Pay Now</option>
    <option value="2">Pay Later</option>
</select>

文本字段:

<input type="text" id="singleregisterform-paymentpersonlastname" 
       name="SingleRegisterForm[paymentPersonLastname]" 
       maxlength="40" placeholder="Enter last name">

Yii 2模型规则:

['paymentOptionId', 'required'],
['paymentPersonTitleId', 'required'],
['paymentPersonLastname', 'string', 'min' => 2, 'max' => 45],
['paymentPersonLastname', 'required', 'when' => function ($model) {
        return $model->paymentOptionId == 2;
    }, 'whenClient' => "function (attribute, value) {
        return $('#paymentOptionId').val() == 2;
}"],
ghhkc1vu

ghhkc1vu1#

您需要添加“whenClient”规则
https://www.yiiframework.com/doc/guide/2.0/en/input-validation#conditional-validation

相关问题