簡體   English   中英

Symfony2自定義表單字段

[英]Symfony2 custom form field

我是Symfony的新手,所以問題似乎有點簡單,但我需要幫助。

我已經生成了新的包。

我在Me\\MyBundle\\Resources\\config\\routing.yml添加了一個新路由:

my_homepage:
    pattern:  /
    defaults: { _controller: MeMyBundle:Default:index }

捆綁控制器看起來像這樣簡單:

namespace Me\MyBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{
    public function indexAction()
    {
        $form = $this->createFormBuilder()
            ->getForm()
        ;
        return $this->render('MeMyBundle::index.html.twig', array(
            'form'        => $form->createView(),
            'param1'      => 'some_string_1',
            'param2'      => 'another string',
        ));
   }
}

在枝條模板中,我可以按照自己的意願閱讀和處理適當的params

整個動作發生在生成的表單中,其中有AJAX請求路由到另一個控制器。

我想要實現的是創建一個新的自定義表單字段,可以使用不同的params以相同的形式多次返回。

例如,我希望我的indexAction()看起來像這樣:

    public function indexAction()
    {
        $paramsArr_1 = array(
            'param1'      => 'some_string_1',
            'param2'      => 'another string',
        );
        $paramsArr_2 = array(
            'param1'      => 'some_string_2',
            'param2'      => 'another fine string',
        );
        $form = $this->createFormBuilder()
            ->add(myCustomField, $paramsArr_1)
            ->add(myCustomField_2, $paramsArr_2)
            ->getForm()
        ;
        return $this->render('MeMyBundle::index.html.twig', array(
            'form'        => $form->createView()
        ));
   }

是的,我確實看到了這篇文章 ,但它對我幫助不大。 我無法讓它發揮作用。

任何幫助深表感謝。

據我所知,表單字段擴展了基本表單類,因此您的“myCustomField”實際上可以是另一種形式。

請查看: http//symfony.com/doc/current/reference/forms/types/form.html

如您所知,每個Form對象都附加了一個對象,因此您可以創建一個新對象而不是您的數組,並在其上設置這些值,然后將該表單添加到包含不同數據的對象所需的次數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM