我的表格中有一个名为' availability_option'使用类型枚举(' 0',' 1',' 2')。零意味着“固定价格”,一种意味着“拍卖”,“两种意味着”和“两种情况”。 我想动态生成2个复选框,一个用于固定价格,另一个用于拍卖'。 这怎么可能? 我是静止的。 但它不应该是yii的正确语法。
<input value="0" id="fixedprice" type="checkbox" name="ProductShop[availability_option][]">
<label for="fixedprice">Fixed Price</label>
<input value="1" id="auctionprice" type="checkbox" name="ProductShop[availability_option][]">
<label for="auctionprice">Auction</label>
我动态地想要它,那怎么可能?有什么想法吗?
答案 0 :(得分:0)
使用checkboxList()
:
<?= $form->field($model, 'attribute_name')->inline(true)->checkboxList([0 => 'Fixed Price', 1 => 'Auction']) ?>
http://www.yiiframework.com/doc-2.0/yii-bootstrap-activefield.html#inline%28%29-detail
答案 1 :(得分:0)
我面临着同样的问题,我通过这样做解决了它:
<?php echo $form->field($model, 'name[]')->checkboxList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Item C']); ?>
请注意,checkboxList要求传递的数组的第一个参数也是字符串类型,因此您可能需要对数组进行更改。
生成的HTML将如下:
<label><input type="checkbox" name="fomrmName[name][]" value="'1'"> a</label>
我解决问题的另一种方法是将复选框包装在foreach块中,如下所示:
<?php foreach($vendorsData as $value){?>
<li><?= $form->field($ucVendors, 'vendor_id['.$value.']')->checkbox(array('label'=>$value)); ?>
,生成的html为:
<label><input type="checkbox" id="usedcarvendors-vendor_id-value" name="UsedCarVendors[vendor_id][value]" value="1"> value</label>