在yii2中验证checkboxList始终回调整数必须是整数

时间:2017-01-17 20:46:06

标签: php yii

在yii:

模型

class LinkReqTipe extends \yii\db\ActiveRecord
public static function tableName()
{
    return 'link_req_tipe';
}

public function rules()
{
    return [
        [['tipe_id'], 'integer'],
        [['tipe_id'], 'required'],
        [['request_id'], 'exist', 'skipOnError' => true, 'targetClass' => Request::className(), 'targetAttribute' => ['request_id' => 'id']],
        [['tipe_id'], 'exist', 'skipOnError' => true, 'targetClass' => TipeRequest::className(), 'targetAttribute' => ['tipe_id' => 'id']],
    ];
}

_form.php这个

echo $form->field($modelLinkReqTipe, 'tipe_id')->checkBoxList(
     ArrayHelper::map(TipeRequest::find()->all(), 'id', 'nama_tipe'));

它生成html(firebug see)

<div class="form-group field-linkreqtipe-tipe_id required">
<label class="control-label col-sm-3">Tipe ID</label>
<div class="col-sm-9">
    <input name="LinkReqTipe[tipe_id]" value="" type="hidden">
    <div id="linkreqtipe-tipe_id">
        <div class="checkbox">
          <label>
            <input name="LinkReqTipe[tipe_id][]" value="1"  type="checkbox"> Perbaikan
          </label>
        </div>

         <div class="checkbox">
          <label>
            <input name="LinkReqTipe[tipe_id][]" value="2" type="checkbox"> Permintaan
          </label>
         </div>
    </div>
    <div class="help-block help-block-error "></div>
  </div>
</div>

我的问题是, 为什么在提交后,我仍然得到验证,复选框必须是整数,即使我已经至少一个chekbox或更多chekbox。

控制器

if ($modelLinkReqTipe->load($request->post())) {
  ## validate
  $valid = $modelLinkReqTipe->validate(['tipe_id']);

  ....some code
 }

调试它(一个选中复选框):

modelLinkReqTipe    Object { tipe_id=[1]}
tipe_id             ["1"]
0                   "1"

调试它(两个选中的复选框):

modelLinkReqTipe    Object { tipe_id=[2]}
tipe_id             ["2"]
0                   "1"
1                   "2"

请告知。

0 个答案:

没有答案