你能告诉我如何使用控制器的主页,因为我试图把一个模型的数据home.ctp(主页视图)与 <?php $this->user->find() ?>
但它返回制作的主页控制器
通知(8):未定义的属性: 查看:: $用户[APP \意见\网页\ home.ctp, 线1]
你能告诉我如何使用控制器的主页,因为我试图把一个模型的数据home.ctp(主页视图)与 <?php $this->user->find() ?>
但它返回制作的主页控制器
通知(8):未定义的属性: 查看:: $用户[APP \意见\网页\ home.ctp, 线1]
你应该看看食谱;它有一些固体CakePHP的教程,在http://book.cakephp.org/
你还没有真正提供了很多的信息,但我的猜测是你的控制器uses
模型“用户”,而你把$this->user->find()
在你看来,当它应该是在你的控制器中。在你的控制器的动作,您想/需要做这样的事情...
Users_Controller extends AppController {
function index() {
$arrayOfUsers = $this->User->find(...);
$this->set('users', $arrayOfUsers);
}
}
然后,您可以 - 在您的视图 - 访问“用户”,像这样:
pre($users);
...因为您使用控制器方法set()
将变量$users
发送到视图。
您真正需要做的是创建一个新的控制器如果是这样的你想去的方向。如果这是您需要访问数据的唯一声明,则可能仅需使用PagesController
的这种方法进行伪造。例如,我的其中一个项目的主页是99%静态存储的特色事件列表。而不是移动所有的东西到一个新的控制器,甚至装载我Event
样板全PagesController
(它是没有必要的),我只是在PagesController::home()
应用本方案:
$attractions = ClassRegistry::init ('Attraction')->featured (10);
的伟大工程。如果你的页面比我的页面更具动态性,那么很有必要通过一个不同的控制器(与正在显示的数据更密切相关的页面)来路由你的主页。
主页(即home.ctp视图)的默认控制器位于/cake/libs/controller/pages_controller.php。通过将应用程序的控制器目录放置为/app/controllers/pages_controller.php,可以覆盖此控制器。然后,你可以修改该控制器认为合适的,即使用模型,注入要在主页中使用的变量等。
这应该是UsersController(没有下划线),并且调试功能是pr()不是pre() – duckyflip 2010-01-18 13:49:36
哈哈,你是我的坏人当我在没有Cake的PHP中工作时,我总是定义我自己调用的pr版本,因为我喜欢函数名至少有一个元音:) – 2010-01-18 15:21:50