【问题标题】:CakePHP naming conventions/file structureCakePHP 命名约定/文件结构
【发布时间】:2011-02-28 15:27:36
【问题描述】:

我对 CakePHP 很陌生,所以我想知道是否有人可以帮助我订购我的页面。

我有一个产品表(带有产品模型和 products_controller)。 我还有一个类别表(带有类别模型和类别控制器)。 类别有很多产品。

首先,名称 categories 不正确。根据 CakePHP 的约定,正确的名称是什么?

其次,我希望用户点击产品链接,然后显示一个类别列表,最后,一旦他/她选择了一个类别,就会显示该类别中的产品。这将如何布局?

【问题讨论】:

    标签: php cakephp naming-conventions cakephp-1.3 conventions


    【解决方案1】:

    你问的是一些非常基本的 CakePHP 东西,我建议你阅读 book,它概述了命名约定、文件结构和数据检索等等。

    话虽如此,名称类别是正确的,除非您希望产品具有多个类别,否则关系将是 Product 'BelongsTo' Category。

    要在产品控制器中获取类别信息,您可以使用 $this->Product->Category->find(); 访问它的 find 方法,但我再次建议您阅读 CakePHP 书籍,以建立我们的知识并了解有关您所使用的框架的更多信息使用。

    【讨论】:

    • 是的,我对 CakePHP 很陌生。这本书的控制器约定页面并没有真正提到多字控制器的任何内容。控制器应该命名为 ProductCategoriesController 还是 ProductsCategoriesController
    • 就我个人而言,我只是将其称为类别以保持其模棱两可,您是否也想将类别应用于其他模型?如果是这样,您也可以拥有一个类别类型字段/表,以使数据库设计尽可能不明确。话虽如此,称它为 ProductCategories 将使它与 CakePHP 中的产品完全无关
    • 对于第二个问题,我想知道将 URL“产品”路由到“类别”(即使有产品控制器)是否正确,或者当用户单击“产品”时它应该带他/她到“类别”页面?
    • 那么如果我需要向我的用户表中添加类别会发生什么?
    • 您希望您的网址指向的内容实际上是您的选择,但如果页面要返回类别,您可能希望它路由到类别控制器。至于添加更多类别,您可以有一个“模型”或“类型”字段(带有一个 category_types 表),您将永远不需要再次添加另一个 *_category 表。
    【解决方案2】:

    你的意思是categories不是category的复数形式?我认同。您的表格必须命名为“类别”。

    其次,我认为您的模型中需要一个类别 hasAndBelongsToMany Products (HABTM),因此每个类别都有许多产品,并且一个类别属于许多产品。 使用 'cake bake' 命令,你会很容易看到它是否是你想要的。

    希望它有所帮助,虽然我对 cakePHP 也很陌生...

    阿尔夫。

    【讨论】:

    • Categories 不需要 category HABTM 产品关系,除非您希望产品属于多个类别,Products belongsTo Category 就可以了。
    • 产品只能属于一个类别。我的表被命名为 categories 但是我想知道它是否应该命名为 product_categories 或与我的数据库中其他不相关的表类似的名称。
    【解决方案3】:

    如果您在 db 中有类别表,其控制器将是 categories_controller.php,如果产品仅属于一个类别,则 Products belongsTo Category 将起作用。不需要HABTM关系。请参阅 cakephp 模型文件为单数形式,控制器文件为复数形式,并附有控制器。这些表在 db 中以复数形式命名。

    关于你的第二个问题,我想我没有完全理解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多