如何在Symfony 4的一个Controller中的函数之间传递参数?

时间:2019-03-26 15:58:08

标签: php controller twig symfony4

我正在尝试将参数从FORM传递到树枝,这与我输入数据的参数不同。如果这个解释很乱-这是更简化的版本...我刚刚开始学习php + symfony,所以请不要太伤我...

我在“创建”页面上有两个空白字段, 我给他们分别说AAA和BBB, 我希望AAA和BBB出现在另一个“ FORMZ”页面上。

我不使用任何数据库,因此不需要使用ObjectManager等,只是为了了解一切工作原理...

我已经创建了ArticleFormType.php文件

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder

        ->add('title', TextType::class, [
            'attr' =>   [
                'placeholder' => "title from ArticleFormType",
                'class' => 'form-control'
                        ]
        ])
        ->add('content')

        ->add('save', SubmitType::class, [
            'label' => 'SAVE'
        ])
    ;
}


public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'data_class' => MyClassArticle::class,
    ]);
}

那是我的控制器:

 /**
 * @Route("/formz", name="formz")
 */
public function index()
{


    $title = 'Created by DT';


    return $this->render('formz/index.html.twig', [
       'title' => $title
    ]);
}

/**
 * @Route("/formz/create", name="create")
 */
public function create (Request $request, ObjectManager $manager ) {


        $article = new MyClassArticle();
        $task = new ArticleFormType();

        $form = $this->createForm(ArticleFormType::class, $article, [
            'action' => $this->generateUrl('create'),
        ]);





        $form->handleRequest($request);

    dump($article);

    if($form->isSubmitted() && $form->isValid()) {

            dump($article);


            return $this->redirectToRoute('formz');


    }



    return $this->render('formz/create.html.twig', [
        'formTest' => $form->createView()
    ]);

}

我不知道如何将$ article转移到公共函数index()-听说可以通过将参数从公共函数create()传递给公共函数index( )。 有人可以帮我吗?

我先谢谢你!

1 个答案:

答案 0 :(得分:0)

您需要将文章存储在某个地方,最好是通过学说(实体保存)保存

然后您需要将索引路由更新为类似

@Route("/formz/{article}", name="formz")
function index(Artile $article = null)

然后您可以将以下内容用于redirectToRoute

$this->redirectToRoute("formz", array("article" => $article))

那应该可以解决您的问题。