5

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

餐桌美食有一些固定的条目 - 54 个数字

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

现在我想设置此复选框显示为 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 表以获得我想要的效果?

4

3 回答 3

4

您可以通过执行 $form->select() 来解决此问题,并应用样式或类属性以使其看起来像您想要的那样。

如果您要删除 div 和标签,那么不使用 $form->input() 函数似乎是有意义的。

于 2009-08-13T21:02:28.970 回答
2

您可以使用 CSS 对 DIV 元素进行样式化。

<style>
div.input div.checkbox {
    float: left;
    width: 50%;
}
</style>
于 2009-08-28T05:39:35.453 回答
1

您可以像这样删除或为内部 div 提供类

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

默认情况下,蛋糕使用:type class eg - type is checkbox thenclass="checkbox"

于 2012-08-23T07:54:27.307 回答