gpt4 book ai didi

Symfony 表单设计

转载 作者:行者123 更新时间:2023-12-04 12:54:15 25 4
gpt4 key购买 nike

我有一个 Event实体,其中 People 的实体可以参加。事件结束后,事件主持人坐下来,应该会看到这样的表格。

         user a    user b     user c      user d     user e    user f     user g
user a _
user b _
user c _
user d _
user e _
user f _
user g _

所有空白都是用户是否喜欢另一个用户的复选框。下划线是禁用的复选框,因为用户不能喜欢自己。我应该使用choice_list吗?我想像这样处理输入:
foreach(guests as guest)//horizontal
{
foreach(guests as other)//vertical
{
if(guest != other && guest.likes(other) && other.likes(guest))
{
//do something
}
}
}

我将如何使用表单构建器来实现这样的目标?

最佳答案

这种类型的表格不适合您的需求吗?

$userIDsArray = $userIDsArray = array('1' => 'name1','2' => 'name2','3' => 'name3','4' => 'name4');

$form = $this->createFormBuilder($initialData);
foreach($userIDsArray as $userId)
$form->add($userId, 'choice', array(
'choices' => $userIDsArray,
'multiple' => true,
'expanded' => true
)
);
$form = $form->getForm();

对于这组用户,检查用户 1 的所有其他三个用户和仅检查用户 3 的第四个,将产生这样的结果。
array (size=4)
'name1' =>
array (size=3)
0 => int 2
1 => int 3
2 => int 4
'name2' =>
array (size=0)
empty
'name3' =>
array (size=1)
0 => int 4
'name4' =>
array (size=0)
empty

渲染表单时,您可以遍历表单中的每个项目,然后对于每个项目,您可以遍历每个选项并禁用您想要的选项:
{% for formWidget in classForm %}
{{ form_label(formWidget) }}
{% for child in formWidget %}
{{ form_widget(child) }}</td>
{% endfor %}
{% endfor %}

当然,您可以对表格中的行和选择使用不同的数组,实现您想要的结构。

关于Symfony 表单设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com