如何使用cakePHP / MVC框架构建控制面板

时间:2014-07-11 21:11:29

标签: php cakephp

我正在使用CakePHP为测试项目构建一个简单的虚拟学习环境(VLE)系统。该项目包含以下内容:

  • 课程
  • 吸取
  • 问题
  • 答案

我已经为课程和课程制作了控制器,模型和视图,我可以在课程中添加课程并删除它们。我一直在关注cakePHPs博客教程并随着时间的推移而改变。

然而,这给我留下了非常严格的内容和页面结构以及网址(我知道如何通过路由更改URL以获得更多用户和SEO友好)。我的页面都是/ {controler} / {method}

项目的一部分是为课程创建管理面板。在页面上,您可以看到课程,以及分配到课程的学生,其中包含添加/编辑这些内容的链接。

然而,我无法弄清楚如何将多个模型组合成一个管理风格的页面。我可以想到几种方式,这可能涉及cakePHP页面,或路由并将一个模型数据带入另一个控制器以使其进入视图。但是我试图通过cakePHP 找出正确的方法,或者在MVC框架中失败。

如果这个问题在任何明显的地方布置,我很抱歉,但是我已经看过并且还没有找到任何答案,我的问题是一个布局的方式。不幸的是,我真的需要这个拼写,因为我只是被很多MVC所震撼,没有人要求和haivng只能在CMS系统中工作。

1 个答案:

答案 0 :(得分:2)

只需创建一个名为“DashboardsController”的控制器或类似的东西。

在它的动作中,你可以加载你想要的任何模型,然后像在相应的控制器中一样使用它:

$this->loadModel('Course');
$courses = $this->Course->find('all');
$this->set(compact('courses'));

这是一个非常常见的问题/解决方案,我相信我几年前就在这里问过同样的问题(虽然我找不到)。你仍然保留MVC结构,因为它仍然充当控制器 - 它只是访问不同模型的方法。

调用的不仅仅是你所使用的控制器模型,这是非常常见的,所以在这种情况下,你只需要加载你想要/需要的模型。

您也可以制作Dashboard.php模型并设置

$useTable = false;

告诉它你不需要“仪表板”表。

我几乎在每个项目中都有这些“通用”控制器中的一个,并且我不确定是否有其他/更好的方法来处理它。这似乎是IMO最干净,最简单,最合乎逻辑的方法。