Как я могу передать параметры из функции в функцию в одном контроллере в Symfony 4? - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь передать параметр из ФОРМЫ в веточку, которая отличается от той, где я делаю свои данные.Если это объяснение грязное - вот более упрощенная версия ... Я только начал изучать php + symfony, поэтому, пожалуйста, не делайте мне больно слишком сильно ...

У меня есть два пустых поля на "CREATE"страницу, я заполняю их, скажем, 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()
    ]);

}

Я не получаюКак я могу перенести мою статью в открытый индекс функции () - я слышал, что это можно сделать как-то (в случае выше), передав параметры из публичной функции create () в публичную функцию index ().Кто-нибудь может мне помочь с этим, пожалуйста?

Я заранее благодарю вас!

1 Ответ

0 голосов
/ 26 марта 2019

вам нужно где-то хранить статью, в идеале через доктрину (сохранение сущности)

тогда вам нужно обновить индексный маршрут, чтобы он был примерно таким

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

Тогда вы можете использовать следующее с redirectToRoute

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

Это должно решить вашу проблему.

...