CakePHP:在单个页面中检索和组合多个模型数据

CakePHP:在单个页面中检索和组合多个模型数据,cakephp,cakephp-2.0,cakephp-model,Cakephp,Cakephp 2.0,Cakephp Model,这是一个非常普遍的Cakephp问题。我试图将来自许多不同模型的模型数据组合到一个给定页面中 我正在为我老板的在线简历构建一个简单的内容管理器,这样他就可以从一个简单的GUI管理它。所以我有简历中所有不同部分的模型,但需要在单个页面上或通过单个控制器方法组合每个模型的数据 我的直觉是,我必须为“cv”构建一个模型(尽管只有一个),并将适当的hasMany/belongsTo关联分别构建到“cv”和内容模型中,或者构建一个能够单独向模型控制器发出请求的静态页面。考虑到项目的规模,前者似乎是不必要的

这是一个非常普遍的Cakephp问题。我试图将来自许多不同模型的模型数据组合到一个给定页面中

我正在为我老板的在线简历构建一个简单的内容管理器,这样他就可以从一个简单的GUI管理它。所以我有简历中所有不同部分的模型,但需要在单个页面上或通过单个控制器方法组合每个模型的数据


我的直觉是,我必须为“cv”构建一个模型(尽管只有一个),并将适当的hasMany/belongsTo关联分别构建到“cv”和内容模型中,或者构建一个能够单独向模型控制器发出请求的静态页面。考虑到项目的规模,前者似乎是不必要的工作密集型,但在后一种情况下,我不知道如何请求控制器向页面提供模型数据。我肯定这很简单,我就是找不到答案!谢谢

您可以制作一个DashboardsController(或任何您想调用它的东西),然后在Dashboard模型中,指定不需要数据库表:
var$useTable=false

在Config/routes.php文件中,添加:
Router::connect('/',array('controller'=>'dashboards','action'=>'index')
使其成为您的主页(如果您愿意)

然后,在仪表板控制器的索引操作中,可以使用
$this->loadModel('Whatever'),您可以从该模型获取数据:
$myData=$this->which->find('all')。您可以加载所需数据的任意多个模型

TLDR/简化版:

1) Make Dashboard controller with 'index' action
2) Make Dashboard model and specify: var $useTable = false;
3) Set Route to use your Dashboard controller for homepage (or any other page: 
  `Router::connect('/', array('controller' => 'dashboards', 'action' => 'index'));`
4) Use $this->loadModel('Whatever'); to gain access to that model's methods

我认为您在建立正确的模型关系方面走在了正确的轨道上。如果这个项目看起来太麻烦了,那么。。。老实说,使用数据库来维护一份简历确实像是用别克打苍蝇。但他年纪大了,很特别,还是系主任,这是我建造一个勒德分子可以使用并且永远不会弄糟的东西的最简单的方法!我已经更新了我的问题,以反映您的建议所取得的进展,谢谢!最后一点。我只是有一个语法问题;API让我度过了难关。这个答案非常完美,非常感谢。