CakePHP получает доступ к другим контроллерам - PullRequest
0 голосов
/ 12 апреля 2010

CakePHP Новичок:)

У меня проблемы с доступом к другому контроллеру и передачей этих данных в представление на одном из моих контроллеров:

В controllers/landings_controller.php:

var $uses = 'User';

function home() {
    $userdata = $this->User->read();
    $this->set(compact('userdata'));
}

В views/landings/home.ctp:

<?php 
    echo $this->userdata;       
?>

При доступе к /landings/home я получаю следующую ошибку:

Notice (8): Undefined property: View::$userdata [APP/views/landings/home.ctp, line 38]

Я не знаю, что я делаю неправильно. Любая помощь? Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 апреля 2010
$this->set('userdata', $userdata);

Compact возвращает один массив. $ this-> set ожидает два параметра.

http://book.cakephp.org/view/57/Controller-Methods

Исправление: множество фактически принимает ассоциативные массивы (спасибо Дэниелу Райту). Читайте ниже об использовании переменных в представлениях.

Кроме того, переменные помещаются в область видимости - не присоединяются в качестве членов - поэтому вы не сделаете этого в представлении:

<?php echo $this->userdata ?>

но, скорее:

<?php echo $userdata ?>

Конечно, если предположить, что $ userdata - это скаляр.

0 голосов
/ 12 апреля 2010

Я думаю, что использование compact - это нормально. Вам нужно больше узнать о set () .

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