2010-04-12 79 views
0

CakePHP的新手:)CakePHP的访问其它控制器

我无法访问另一个控制器和通过该数据来在我的控制器中的一个的视图:

controllers/landings_controller.php

var $uses = 'User'; 

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

在​​:

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

当访问/landings/home我收到以下错误:

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

我不知道我在做什么错。任何帮助? 谢谢!

回答

2
$this->set('userdata', $userdata); 

Compact返回单个数组。 $ this-> set需要两个参数。

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

校正: 组事实上确实接受关联数组(感谢丹尼尔莱特)。请阅读下面关于在视图中使用变量。

此外,变量放在范围 - 没有连接作为成员 - 这样你就不会做这个的观点:

<?php echo $this->userdata ?> 

,而是:

<?php echo $userdata ?> 

假设$当然,userdata是一个标量。

+2

事实上,'$ this-> set'按照原始海报的建议工作。如果数组作为参数提供,那么'$ this-> set'将使用数组的键和值。 – 2010-04-12 15:34:11

+0

陷阱。非常好。 – webbiedave 2010-04-12 15:50:12

0

我认为使用compact是好的。您需要知道更多关于set()