2010-12-05 4 views
0

J'apprends Symfony et je suis tombé sur un problème et je n'ai pas trouvé de réponse: Je prends comme exemple le tutoriel Jobeet de Jobeet-1.4-Doctrine- en.Les données de plusieurs modèles dans un module dans Symfony

Le jour 3 [ day 3]: Il est tout sur le modèle et ce où je suis coincé Lors de la génération du frontend, la commande suivante est exécutée:

$ doctrine php symfony: generate-module --with -show --non-verbose-templates travail frontend JobeetJob

Il génère le module 'travail' conformément au module prévu 'JobeetJob'

Ma question est maintenant: J'ai un autre module appelé « JobeetArticles où les gens peuvent apprendre n comment écrire un meilleur CV et de telles choses. Je souhaite que les données de 'JobeetJob' et de 'JobeetArticles' soient disponibles pour le module 'job'. Comment puis-je accomplir cela? J'espère que ma question est claire

Cordialement

Répondre

1

En général, si vos relations sont configurés correctement (je ne sais pas si vous avez besoin de faire quoi que ce soit dans Symfony pour permettre cela) vous simplement faire quelque chose comme dans les tutoriels Jobeet avec les catégories ...

dans le fichier actions.class.php pour le travail que vous avez executeIndex et à l'intérieur de celui-ci vous avez $ this-> categories = JobeetCategoryPeer :: getWithJobs(); Et ce que cela fait est de trouver le modèle JobeetCategoryPeer et d'appeler la fonction getWithJobs() dans ce modèle, puis il retourne ces données au contrôleur de travail à envoyer à la vue sous la forme de catégories $.

Vous voulez faire quelque chose de similaire, donc en JobeetArticlesPeer créer une fonction pour retourner les données que vous voulez ...

static public function getArticles() 
{ 
    $criteria = new Criteria(); 
    //whatever criteria you want in here 

    return self::doSelect($criteria); 

} 

Et dans votre fichier JobeetJob actions.class.php quelque chose comme

public function executeIndex(sfWebRequest $request) 
{ 
    $this->articles = JobeetArticlesPeer::getArticles(); 
} 

Et enfin dans votre indexSuccess.php pour JobeetJob

<?php foreach ($articles as $article): ?> 
    <div class="article"> 
    <div class="article_title"> 
     <h1> 
     <?php echo link_to($article, 'article', $article) ?> 
     </h1> 
     <?php echo $article->getAuthor() //field name for author ?> 
    </div> 
    <div class="article_content"> 
     <?php echo $article->getContent() //field name for article content ?> 
    </div> 
    </div> 
<?php endforeach; ?> 

Et t chapeau devrait vous donner une idée générale de la façon d'accéder aux données d'autres modèles

Questions connexes