Чтобы очистить код контроллера, я хочу переместить «newPostAction» в службу. Проблема, которую я получаю, заключается в том, что теперь я не могу передать в результате funtion в службе две переменные для контроллера. Я использую функцию для создания формы и получаю пулю из сообщения формы и визуализирую ее. Я не знаю, как передать его контроллеру. Я попробовал использовать функцию «список()», но она не получает информацию прав.
Как я могу вызвать «слизню» pos изнутри контроллера?
Вот код контроллера:
/**
* @param Request $request
* @return array
*
* @Route("/new/_post", name="_blog_backend_post_new")
* @Template("BlogBundle:Backend/Post:new.html.twig")
*/
public function newPostAction(Request $request)
{
$form_post = $this->getPostManager()->createPost($request);
$slug_post = ¿How do I get it from inside the createPost()?;
if (true === $form_post)
{
$this->get('session')->getFlashBag()->add('success', 'Your post was submitted successfully');
return $this->redirect($this->generateUrl('blog_blog_post_show', array('slug' => $slug_post)));
}
return array(
'post_slug' => $slug_post,
'form_post' => $form_post->createView()
);
}
Вот PostManager сервис для создания новой должности лица:
/**
* Create and validate a new Post
*
* @param Request $request
* @return bool|FormInterface
*/
public function createPost (Request $request)
{
$post = new Post();
$post->setAuthor($this->um->getloggedUser());
$form_post = $this->formFactory->create(new PostType(), $post);
$form_post->handleRequest($request);
$slug_post = $post->getSlug();
if ($form_post->isValid())
{
$this->em->persist($post);
$this->em->flush();
return true;
}
return $form_post;
}
Это не работает. Спасибо вам за ваше время. Форма отображается, однако, когда я отправляю ее, данные не передаются в базу данных и не перенаправляются. Кажется, что возвращение преобразует его в простую строку, и содержимое формы теряется, я считаю. Любое предложение? – Garces
@Garces Спасибо, я обновил ответ. – acontell