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
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';
}
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
Yes we can. You just need to create your layout file under Template>>Layout>>yourlayout.ctp Then load this layout along with the Controller by:
class MyController extends AppController {
public function initialize(){
parent :: initialize();
$this->layout = "yourlayout";
}
}
this will automatically implement this layout as default for the Controller. you might want to use $this->viewBuilder->layout("yourlayout"); inside the initialize() but it leads to error "Call to member function layout() on boolean". So instead you can use the former.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.