2016-02-15 13 views

risposta

7

In radice di configurazione è possibile scrivere layout di default [[\yii\base\Application::$layout]] per tutte le viste:

[ 
    ... 
    'layout' => 'main', 
    'components' => [ 
    ... 
    ] 
] 
+0

In tal caso viene visualizzato il seguente errore: Si è verificato un errore durante la gestione di un altro errore: yii \ base \ UnknownPropertyException: impostazione della proprietà sconosciuta: yii \ web \ View :: layout in C: \ ... \ yii \ vendor \ yiisoft \ yii2 \ base \ Component.php: 197 – TheStoryCoder

+0

Sì, ho sbagliato. Ho risolto la mia risposta. –

0

Si può fare nel modo seguente. Per esempio un layout defaultLayout.php può essere creato in questo modo:

<?php $this->beginContent('@app/views/layouts/main.php'); ?> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-lg-4">Left Side Bar</div> 

      <div id="content" class="col-lg-4"> 
       <?php echo $content; ?> 
      </div><!-- content --> 

      <div class="col-lg-4">Right Side Bar</div> 
     </div> 
    </div> 
<?php $this->endContent(); ?> 

All'interno l'azione relativa

public function actionIndex() 
{ 
    $this->layout = 'defaultLayout'; 

    return $this->render('index', [ 
     'model' =>$model, 
    ]); 
} 

Nella configurazione (config/main.php) è possibile sovrascrivere il layout di default per tutti i vostri punti di vista

[ 
    // ... 
    'components' => [ 
     'view' => [ 
      'layout' => 'main.php' 
     ], 
     // ... 
    ], 
] 
+0

Si dice globalmente per tutte le azioni del controller ... e non localmente .. – scaisEdge

+0

La modifica a config/main.php non è corretta. Vedi risposta accettata per la sintassi corretta. – TheStoryCoder

0

Nella configurazione, è possibile modificare lo layoutPath.

Esempio:

$config = [ 
    ... 

    'layoutPath' => '@app/views/layouts-2' 
]; 
+0

... ma voglio specificare un layout specifico, non solo la cartella in cui si trovano. – TheStoryCoder

+1

Basta vedere il link alla documentazione. Con 'layoutPath', puoi avere il tuo layout per TUTTI i controller e le azioni e lascerai intatto il layout predefinito. (come hai detto nella tua domanda). – Clyff

+1

Se non è il caso, riscrivi la tua domanda e sii più chiaro su ciò che stai cercando di realizzare. – Clyff

-1

Variazione config/web.php il file

e aggiungere questa riga prima di componenti dell'array

il nome del nuovo stile che viene creato in vista/layout/main_style. php

'layout' => 'main_style' 

Utilizzando questo layout intero progetto ha cambiato

+0

La risposta non aggiunge nuove informazioni rispetto alla risposta già accettata. – TheStoryCoder

Problemi correlati