CakePHP表单助手 - HABTM多个复选框样式

时间:2009-08-12 16:23:56

标签: cakephp checkbox styling has-and-belongs-to-many

我有两张桌子:“餐馆”和“美食”,它们通过HABTM表相互关联

餐桌美食有一定的固定条目 - 54号

餐厅可以提供任意数量的美食。在烘焙应用程序时,这带有多个选择。由于我想要复选框,我使用数组('type'=>'select','multiple'=>'复选框')将其转换为复选框。

现在,我希望将此复选框的显示方式设置为4列,如下面的屏幕截图所示。

img2.pict。 COM / 82 / BC / A4 / 1453459/0 / 200908111511.png

echo $form->input('Cuisine', array('type' => 'select', 'multiple' => 'checkbox'));  

上面的代码在每个元素周围生成了许多div,如下所示

http://img2.pict.com/1a/a3/0a/1453457/0/200908121509.png

我尝试了以下内容:

echo $form->input('Cuisine', array( 'type' => 'select', 'multiple' => 'checkbox', 'div' => false, 'label' => false));

但此代码仅删除外部div和标签。我无法控制内部

<div class="checkbox">
<label for="CuisineCuisine2">Andhra</label>

出现在单个复选框周围。

如何使用FormHelper删除或给内部div类,所以我可以做一些自定义样式? 或者是否有任何其他方法来填充此HABTM表以获得我想要的效果?

3 个答案:

答案 0 :(得分:4)

您可以通过执行$ form-&gt; select()来解决此问题,并应用样式或类属性以使其看起来如您所愿。

如果你打算删除div和label,似乎没有使用$ form-&gt; input()函数。

答案 1 :(得分:2)

您可以使用CSS来设置DIV元素的样式。

<style>
div.input div.checkbox {
    float: left;
    width: 50%;
}
</style>

答案 2 :(得分:1)

你可以删除或给内部div这样的课程

$this->Form->input("hello_test",array('type'=>'checkbox','div'=>'class_name'));

默认情况下,cake使用:type class例如 - type是复选框,然后是class="checkbox"