loadmodel不工作为什么?

时间:2012-01-12 10:32:02

标签: php cakephp cakephp-1.3 cakephp-2.0 cakephp-1.2

在section_controller中我使用loadmodel在sections / index文件中打印用户名,但是我收到错误:
注意(8):未定义的变量:用户[APP \ views \ sections \ index.ctp,第3行]

public function index ()
        {

       $this->loadModel('User');
      $user = $this->User->find('all');
       $this->Section->find('threaded', array('order' => array('Section.created ASC')));
       $this->set('data','user');
          }

在/ index

<div><?php echo $user['User']['username']; ?></div>

2 个答案:

答案 0 :(得分:2)

你有一个错字,试试:

$this->set('data',$user);

然后在你看来:

<div><?php echo $data['User']['username']; ?></div>

希望这有帮助!

答案 1 :(得分:1)

您没有正确分配变量,请改为尝试:

$this->set('user', $user);

$user指向您的查找结果并设置为user,因为这是您在视图中尝试调用的内容。或者使用compact表示法来实现相同的目的:

$this->set(compact('user'));

您现在正在做的是设置一个名为data的变量,其字符串值为user,所以当您在视图中执行此操作时:

echo $data;

它会在您的视图中将user作为字符串返回。

修改

由于find('all')将返回一个数组,因此请确保在视图中循环显示结果,如下所示:

foreach($user as $u) {
    echo $u['User']['username'];
}

或者,如果您想要一个特定的结果,请调用它的数组键,对于第一个用户将是:

echo $user[0]['User']['username'];