蛋糕php,未定义的变量问题

时间:2011-07-04 00:15:56

标签: php cakephp

我有一个像这样的控制器页面:

class UsersController extends AppController {
var $helpers = array ('Html','Form');
var $name = 'Users';

function index() {
    $this->set('view_users', $this->User->find('all'));
}
}

然后我有另一个这样的控制器页面:

    class PostsController extends AppController {
var $helpers = array ('Html','Form');
var $name = 'Posts';

function index() {
    $this->set('edit_users', $this->Post->find('all'));
}
}

然后我有索引文件:

<?php foreach($view_users as $value): ?>
<p>id - <?php echo $value['User']['first']; ?></p>
<?php endforeach; ?>

<?php foreach($edit_users as $value): ?>
<p>id - <?php echo $value['Post']['first']; ?></p>
<?php endforeach; ?>

我得到的问题是:Notice (8): Undefined variable: view_users [APP\views\posts\index.ctp, line 6]

非常奇怪,因为edit_users var起作用。

可能是什么问题? 感谢

1 个答案:

答案 0 :(得分:3)

UsersControllerPostsController是不同的控制器。他们使用不同的视图,即使他们都有index动作,也会分别调用它们并使用不同的视图。

当您转到/users/index时,它会调用设置index变量的UsersController的{​​{1}}操作。

当您转到$view_users时,它会调用设置/posts/index的{​​{1}} index操作。

问题:PostsController $edit_users操作未设置PostsController的值,因此该变量未定义。假设您login模型与$view_users模型有关系,您应该可以将其添加到Post User操作中以解决您的问题:

PostsController

或者,您可以更改视图以使用index检查变量是否先设置:

$this->set('view_users', $this->Post->User->find('all'));