在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"
请告知。