Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Assigning Layout in cakephp

Can we define a Layout for whole controller in that particular controller?I have used before filter of the appcontroller for this purpose earlier but it doesnt solves it any more.So i need that there should be some definition of layout in controller that would apply for all the actions of that controller.

Regards

like image 471
techie_28 Avatar asked Nov 28 '22 12:11

techie_28


2 Answers

use it:

inside your action

$this->layout = 'mylayout';

you have to create that layout in view/layout/mylayout.ctp

or add this function to controller to set layout for each action of controller

  function beforeFilter() {
    parent::beforeFilter();
        $this->layout = 'mylayout';
  }
like image 104
sukinsan Avatar answered Dec 09 '22 14:12

sukinsan


The best way to do some thing like this

var $layout = 'my_account';

This will apply to your entire controller. After adding this code it will look something like this.

class MyAccountsController extends AppController {
    var $name = 'MyAccounts';
    var $components = array('Email');
    var $layout = 'my_account';

If you do not want to use some of the action you can explicitly define in your action like this

function my_action(){
    $this->layout = 'another_layout';
}

Now this my_action will take another layout and rest of the action will take my_account layout

like image 42
Vins Avatar answered Dec 09 '22 15:12

Vins