首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP -访问多个表和类别的页面

CakePHP -访问多个表和类别的页面
EN

Stack Overflow用户
提问于 2011-04-20 02:11:12
回答 6查看 1K关注 0票数 2

我正在制作一个有许多不同类别的站点,每个类别都有自己的控制器/模型/视图。

示例网站类别:餐饮、电影、夜生活、Sports...etc

我的控制器:餐厅、影院、活动、文章、城市、用户……还有更多

我也有一个网站主页,从他们所有的数据,以填充在页面上的小方框。而且,每个类别都有自己的主页,也可以从不同的类别中提取数据-例如,在“电影”主页上,它还可以从影院附近的餐馆和体育赛事中提取数据,也许还可以从文章模型中提取一些最近的文章……等等--有很多类别重叠。

我该如何设置?体育赛事与电影没有任何联系,所以我无法想象任何hasMany/belongsTo类型的关系--但我仍然需要访问数据。尤其是在主页上,实际上根本没有表格,但需要从上面的所有内容中提取数据。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-04-20 02:16:48

你的问题太大了,不能完全覆盖。我将解决跨不同控制器访问多个模型的问题。这可以通过几种方式来完成。

按关系:

代码语言:javascript
复制
$this->Event->City->find(); // relationship to City exists in Event Model

通过将其添加到控制器中的$uses属性:

代码语言:javascript
复制
var $uses = ('City');

根据需要加载到方法中:

代码语言:javascript
复制
function some_method() {
  App::import('Model', 'City');
  $this->City->find();

每种方法都有自己的好处。您应该阅读有关Models in the CakePHP Book的更多信息。如果你有大量的关系,你应该查看LazyModel来延迟加载你的模型。

票数 1
EN

Stack Overflow用户

发布于 2011-04-20 02:21:54

听起来您需要实现components来处理各种类别。该组件将为任何给定页面(与类别主页不同)提供对类别框的访问。

然后,我将实现一个名为'category‘的元素,您可以将信息从组件传递到该元素。我还会让所有组件导出类似的数据。这将保持它的简单性,但仍然提供您想要的灵活性。

总之,为每个类别创建组件:

  • DiningComponent
  • NighlifeComponent
  • etc.

将输出传递给要在页面上显示的类别元素。

票数 1
EN

Stack Overflow用户

发布于 2011-04-20 02:21:54

乍一看,你可能没有看到另一个模型,但是你把它们称为“类别”的想法意味着它们必须是某种东西的类别,可能是活动。新的模型可能非常单薄,但我可能会怀疑像外观安排这样的事情与活动模型有关,所以你可以给它一个开始和结束的发布日期。如果你不想把它叫做“活动”,也许像"contentItem“这样的泛型可以给你提供一个控制全局属性的地方。另一个练习是比较您现有的模型并寻找重复的属性。这些重复的属性描述的是什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5720727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档