Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将sfWidgetFormDoctrineChoice扩展为选项卡式小部件_Php_Forms_Doctrine_Symfony 1.4 - Fatal编程技术网

Php 如何将sfWidgetFormDoctrineChoice扩展为选项卡式小部件

Php 如何将sfWidgetFormDoctrineChoice扩展为选项卡式小部件,php,forms,doctrine,symfony-1.4,Php,Forms,Doctrine,Symfony 1.4,我在Symfony 1.4中有一个条令表格 我需要做什么: 我需要显示当前使用sfWidgetFormDoctrineChoice对象提供的相同选项,但我希望在选项卡视图中显示它们 我目前的看法是: [ ] option1 [ ] option2 [ ] option1.1 [ ] option1.2 [ ] option1.3 [ ] option2.1 [ ] option2.2 [ ] option2.3 [ ] option2.4 我想向他们展示如下: +-------------+-

我在Symfony 1.4中有一个条令表格

我需要做什么:

我需要显示当前使用sfWidgetFormDoctrineChoice对象提供的相同选项,但我希望在选项卡视图中显示它们

我目前的看法是:

[ ] option1
[ ] option2
[ ] option1.1
[ ] option1.2
[ ] option1.3
[ ] option2.1
[ ] option2.2
[ ] option2.3
[ ] option2.4
我想向他们展示如下:

+-------------+-------------+
| > option1 < |   option2   |   (tabs, option1 is the currently selected one)
+-------------+-------------+--------------------------+
 [ ] option1.1      (options on first tab)
 [ ] option1.2
 [ ] option1.3
+------------------------------------------------------+
问题是,在最后一行中,我想我会在表单类上找到一些神奇的get()方法,在widget类上(可能)找到一个toString()方法,但我没有找到它们,我仍然不确定如何在Symfony 1.4和Doctrine中扩展widget


有人能给我指出正确的方向吗?

我想你有两种可能来解决这个问题:

第一个是编写您自己的小部件,它继承自
sfWidgetFormDoctrineChoice
。因此,您可以根据自己的需求实现一个自定义的
\uu toString()
方法。(见附件)

您应该看看
sfWidgetFormChoice
和目标方法self
sfWidgetFormDoctrineChoice
。如果编写自己的类继承自
sfWidgetFormDoctrineChoice
,则可以覆盖方法
render
getJavaScripts
。此外,您还可以为这个小部件实现自己的渲染器,它可以生成js选项卡和gui内容


第二个选项是,隐藏默认表单字段并使用javascript构建新的表示。你想建立标签,所以你应该已经使用js来启用它了

正如你的第二个建议所说,我以前做过,但这次我想用正确的、可重复使用的方式来做。我仍然不知道如何扩展小部件。您所指的文档页面是针对“sfFormFieldSchema”的,它是另一个类树,我不知道它的存在-太棒了,没错!您应该看看
sfWidgetFormChoice
和目标方法self
sfWidgetFormDoctrineChoice
。如果编写自己的类继承自
sfWidgetFormDoctrineChoice
,则可以覆盖方法
render
getJavaScripts
。此外,您还可以为这个小部件实现自己的渲染器,它可以制作js选项卡和gui之类的东西。非常感谢。
<?php echo $form['product_type_list'] ?>