Symfony 2 - делать действия из пакета внутри другого пакета - PullRequest
2 голосов
/ 29 октября 2011

У меня есть проблема с этим понятием: я хочу иметь форум с пакетами (отображать комментарии, добавлять новые и т. Д.), Но я хочу отобразить его в другом пакете (скажем, url: / Articles / Showforum).Я могу включить форум внутри / article / showforum, но ссылки будут старыми (например, чтобы показать форму для добавления новой темы: / forum / newtopic).Я хочу что-то вроде / article / showforum / forum / newtopic - есть ли в Symfony 2 такой инструмент для достижения этой цели?

1 Ответ

2 голосов
/ 29 октября 2011

Вы можете установить базовую маршрутизацию для вашего ForumBundle. Здесь используются аннотации:

/**
* Forum controller
*
* @Route("/articles/showforum/forum")
*/
class ForumController extends Controller
{...

Базовый метод editAction:

\ForumBundle\ForumController.php
public function editAction($id)
{   
    $this->editCustom(id);

    return array(
        'entity'      => $entity,
        'edit_form'   => $editForm->createView(),
        'delete_form' => $deleteForm->createView(),
    );
}

public function editCustom(id)
{
    $em = $this->getDoctrine()->getEntityManager();

    $entity = $em->getRepository('ForumBundle:Topic')->find($id);

    if (!$entity) {
        throw $this->createNotFoundException('Unable to find Topic entity.');
    }

    $editForm = $this->createForm(new TopicType(), $entity);
    $deleteForm = $this->createDeleteForm($id);
}

\ArticlesBundle\ForumController.php
public function editAction($id)
{   
    \ForumBundle\Controller\ForumController::editCustom(id);

    return array(
        'entity'      => $entity,
        'edit_form'   => $editForm->createView(),
        'delete_form' => $deleteForm->createView(),
    );
}
...