2

我知道的命名约定所使用的插件通常与插件的名称,然后使用复数模型开始表。例如,假设我有一个名为Poll的插件,一个名为PollPoll的模型和另一个名为PollTag的模型,那么生成的表名将是poll_polls和poll_tags。他们也会有一种和睦相处的关系,那么表名的约定是什么?我相信这将是poll_poll_polls_poll_tags,虽然它有点多余,但它有意义,因为第一个poll_表示插件的名称,而poll_polls和poll_tags与模型相关。的CakePHP HABTM插件表命名规则(1.3)

同样有什么命名约定在1.3改变了插件?上述说法是否正确?

回答

2

不确定蛋糕1.3(我不使用它尚未),但这个,如果你是对的这听起来像在模型中的关系,并可能打破惯例和定义jointable和外键的完全可以接受的情况下,在插件中。

为什么你的插件需要一个连接表?看起来像一个设计问题。也许有一种情况需要这样做,但如果我与插件具有HABTM关系,那么我会在插件的表格中添加一个modelname列,而不必为我想要使用插件的每个模型创建一个新表格。

+0

连接表中的两个模型都在插件中。也许我没有说清楚。所以Poll_Poll和Poll_Tag都是Poll插件的一部分。除了该插件中的内容外,其他任何内容都不会使用这些表。 谢谢! :) – Parris 2010-01-12 03:34:06

+0

但我并不想打破命名约定,我想遵循约定,但是这个约定看起来多余,而且有点笨重,所以我想知道是否有更清洁的东西存在。 – Parris 2010-01-12 03:35:28

0

它实际上还不是一个约定“由插件使用的表一般先从插件的名称,然后将模型使用复数。”

想法被引入的唯一地方是an example in the book,实际上它说:“建议您为插件控制器命名一些相对独特的东西,以避免与父应用程序发生名称空间冲突......您可能想要创意使用控制器名称,或者将插件的名称预先添加到类名称中。“

你的表/型号/控制器/视图名称必须遵循正常CakePHP的命名约定,并采取合理的预防措施,以避免命名空间冲突。因此,在插件栏中为“foo_order”模型创建一个“foo_orders”表将会非常好。