2011-10-29 4 views
2

J'ai un problème avec ce concept: je veux avoir un forum bundle (afficher les commentaires, ajouter de nouveaux, etc.), mais je veux l'afficher dans un autre bundle (disons url :/articles/showforum). Je peux inclure un forum à l'intérieur/articles/showforum, mais les liens seront les anciens (par exemple pour montrer le formulaire pour ajouter un nouveau sujet:/forum/newtopic). Je veux sth like/articles/showforum/forum/newtopic - y at-il un tel outil dans Symfony 2 pour y parvenir?Symfony 2 - effectuer des actions à partir d'un bundle à l'intérieur d'un autre bundle

Répondre

2

Vous pouvez définir le routage de base pour votre ForumBundle. Ici, en utilisant les annotations:

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

Une méthode editAction de base:

\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(), 
    ); 
} 
+0

mais si je veux avoir aussi/photos/showforum? Et il ne résout pas le problème avec les urls (le modèle montrant le forum aura des liens tels que/forum/newtopic,/forum/reply, etc., je veux qu'ils pointent vers bundle qui est conteneur, avec leurs actions redirigées vers forumcontroller) – chris

+1

Vous devez changer d'approche alors. Créez simplement votre ForumBundle comme si vous l'utilisiez sans l'inclure dans un autre bundle. Ensuite, créez un PhotosBundle (le même pour ArticlesBundle) avec toutes les méthodes dont vous avez besoin dans son contrôleur et appelez les méthodes de ForumBundle grâce aux espaces de noms. – dlondero

+0

Mais avec les liens des templates ForumBundle? Ils redirigent toujours vers le modèle principal de ForumBundle (à la place des modèles ArtcilesBundle contenant le modèle ForumBundle). – chris

Questions connexes