2013-01-18 98 views
2

要建立相應的模型可以使用該輸入字段:如何重命名CakePHP模型中的字段(模型/表格)?

cakephp $this->Form->input('Model.field'); 

將其重命名,可以使用

cakephp $this->Form->input('Model.field', array('label' => __('new field name'))); 

但考慮我有一個巨大的應用程序,我不希望一遍又一遍地重命名每個字段。這個問題被問了很多次,總是用我給出的解決方案來回答這個初學者問題。但在CakePHP中必須有一種更優雅的方式......我想可以通過Translate Behavior構建一個解決方法。這是最好的方式嗎?

+1

您不重命名該字段。您正在更改字段標籤的文本輸出。 – Ross

+0

你說得對。當然,我的意思是改變標籤而不是重命名數據庫字段。 – user1904159

回答

1

您指出的方式是在CakePHP中完成的方式。字段名稱必須與模型中的名稱相對應。如果您不喜歡該名稱,則可以隨時更改模型中的名稱以表示您希望它在表單上顯示的內容。否則,您必須按照指示使用標籤字段。

我想還有另外一種方法。你可以重寫表單助手爲你做翻譯。但是,您將管理大量表單名稱,以根據名稱動態插入標籤。這看起來像是很多額外的工作,只是爲了更改標籤。

0

輸入元素的標籤取決於數據庫表格和模型字段的字段名稱。所以,讓我們假設你有外地的用戶名在用戶表和用戶模型,然後..

echo $this->Form->input('User.username'); 

將輸出

<input type="text" label="Username" ... /> 

因此改變在user表和模型的字段,從而獲得所需標籤的形式元素。