2013-10-06 4 views
0

В CakePHP каждый метод контроллера имеет свой собственный вид, а файл шаблона представления - это имя метода.Как реализовать представление по умолчанию в CakePHP?

class DataController extends AppController 
{ 
    public function one() 
    { 
    // will render one.ctp 
    } 

    public function two() 
    { 
    // will render two.ctp 
    } 
} 

Accourding в документации API есть $view свойство контроллера, который определяет вид для визуализации. Так что я должен иметь возможность определить вид по умолчанию стандартного файл, скажу all.ctp, для всех методов контроллера

class DataController extends AppController 
{ 
    public $view = 'all'; 

    public function one() 
    { 
    // should render all.ctp 
    } 

    public function two() 
    { 
    // should render all.ctp 
    } 
} 

Однако это не работает, и CakePHP игнорирует $view свойства и продолжает искать файл шаблона из то же имя, что и метод.

Есть ли способ иметь представление по умолчанию без необходимости вставлять $this->render('all'); в каждый из методов контроллера?

ответ

1

Значение будет переопределено в Controller::setRequest(), который вызывается в классе контроллеров constructor.

Вы можете использовать контроллеры beforeFilter() callback вместо того, чтобы установить значение:

public function beforeFilter() 
{ 
    parent::beforeFilter(); 
    $this->view = 'all'; 
} 
Смежные вопросы