Cakephp несколько просмотров на контроллер - PullRequest
3 голосов
/ 19 октября 2011

У меня есть контроллер, который имеет 3 функции.Я хочу показать 3 различных вида и макетов в каждой функции в зависимости от того, пришел ли пользователь с мобильного, с веб-сайта или из Facebook.Я уже прохожу туда, откуда приходит пользователь.

Я не уверен, как бы я тогда показывал конкретный вид и компоновку для каждого.Вот код, который я начал делать, чтобы изменить макет.У меня есть представления в папке с именем res.

function availability() {

    if ($_REQUEST['from'] == 'facebook') {
        $this->layout = 'facebook';
        print_r ('face');
    }elseif ($_REQUEST['from'] == 'website'){
        $this->layout = 'website';
        print_r ('web');
    }elseif ($_REQUEST['from'] == 'mobile'){
        $this->layout = 'mobile';
        print_r ('mobile');         
    };
}

1 Ответ

4 голосов
/ 19 октября 2011

Используйте $this->render() для изменения вида.

$this->layout = 'facebook';
$this->render( 'res/facebook' );

Вы также можете поместить все виды для разных макетов в свои собственные папки и установить путь просмотра, чтобы вам не приходилось выбирать видывручную в каждой функции:

function beforeFilter() {
    parent::beforeFilter();
    $this->viewPath = $_REQUEST[ 'from' ];
}

Теперь представление для действия "доступность" для макета Facebook получено из facebook/availability.ctp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...