Merhaba.
yii de layout olayı gayet başarılı bir şekilde uygulanmakta, ci den yii ye geçmemde bir çok neden var, yii ye alıştıkça bu nedenlerin sayılarıda artmakta ve iyiki geçmişim diyebilmekteyim. umarım yanlış yönlendirmeyiz.
/controller yapısı örneği/
/controllers/MyControlller.php
/controllers/YourControlller.php
/layout yapısı örneği/
/views/layouts/layoutdosyasi1.php
/views/layouts/layoutdosyasi2.php
/view yapısı örneği (my ve your yukarıdaki controller isimleri)/
/views/my/show.php
/views/your/show.php
/MyController içinde layout kullanımı/
MyController.php içerisine bu kodu ekliyoruz
$this->layout='//layouts/layoutdosyasi1';
/*action örneği url : /my/deneme */
public function actionDeneme(){
/*
* ci deki this->load->view() kodunun yii deki karşılığı
* controller dosyanla aynı isimdeki dizin (/views/my/) altına bakar ve ilgili dosyanı render eder
*/
$this->render('show');
}
/=====================/
/YourController içinde layout kullanımı/
YourController.php içerisine bu kodu ekliyoruz
$this->layout='//layouts/layoutdosyasi2';
/*action örneği url : /your/deneme */
public function actionDeneme(){
/*
* ci deki this->load->view() kodunun yii deki karşılığı
* controller dosyanla aynı isimdeki dizin (/views/your/) altına bakar ve ilgili dosyanı render eder
*/
$this->render('show');
}
ikinci bir yöntem her iki class ı Controller classından extend edip bu class ta bir defa layout tanımı yapıp diğer classlarında da etkili olmasını sağlayabilirsin, böylelikle her class ta ayrı ayrı tanımlama yapmamış olursun.
örneğin; 10 tane class için bir layout kullanıp, admin class ı için farklı bir layout kullanacaksan admin contrroller inda layout tanımı yaparak diğerlerinden farklı olmasını da sağlayabilirsin.
her iki tercihte projenin yapısına göre veya koşullara kullanılabilir.
iyi çalışmalar.