2012-08-29 2 views
1

J'ai configuré une structure de module imbriquée dans Yii et, pour une raison quelconque, le module enfant ne semble utiliser aucune disposition.Yii: Mise en page pour le module enfant (imbriqué)

Voici mon chemin heirachy.

app 
    protected 
     modules 
      parent 
       views 
        layouts 
         column1.php 
         column2.php 
         main.php 
       modules 
        child

J'ai ajouté les modules dans le fichier de configuration comme suit

'modules'=>array(
    'parent'=>array(
     'modules'=>array(
      'child', 
     ), 
    ), 
),

Les deux modules fonctionnent, mais l'enfant modules tout ce que je reçois est le message expliquant le contrôleur par défaut/index peut être personnalisé au chemin suivant. Aucun contenu de mise en page n'est affiché. Selon la documentation, je m'attendais à ce que le module enfant hérite de la mise en page du parent. J'ai généré le module enfant en utilisant gii (qui ne créera pas de module enfant), je l'ai donc créé en tant que module typique, ajouté un dossier de module dans mon parent et copié les résultats dans mon module parent en tant qu'enfant .

Des idées où chercher?

Répondre

0

Il s'avère que le problème réside dans le schéma de résolution de vue dans Yii. Mon module parent définit la disposition par défaut sur 'column1', héritée par mon module enfant. Dans la disposition 'column1', la disposition 'principale' est rendue avec le code suivant. Dans le schéma de résolution des vues de Yii, ceci correspond au dossier de disposition du module courant. Pour les vues dans mon module parent, cela correspond à la disposition principale dans le dossier des vues parent et fonctionne très bien.

/protected/modules/parent/views/layouts/main.php

Dans le cas de vues dans mon module enfant, cette cartes pour la mise en page principale de l'enfant dossier vues, qui n'existe pas, et ne résolution.

/protected/modules/parent/modules/child/views/layouts/main.php

un travail autour, prévu sur le forum Yii here, consiste à modifier la « column1 » et à utiliser semi mises en page « » Colonne2 dans les modules mères fixes chemins.

$this->beginContent('//../modules/parent/views/layouts/main')