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」表將會非常好。