CRUD模塊無法在播放框架中轉換有意義的類名稱。例如,如果我有一個類別模型,然後在控制器文件夾中創建一個類別類以擴展CRUD,則類別鏈接將不會出現在管理部分中。但是,如果我將文件重命名爲「Categorys」,它將起作用。有沒有解決這個小問題的方法?因爲我用CakePHP的發揮,它適用於所有的命名約定Play Framework - CRUD命名約定
5
A
回答
9
不錯根據documentation of CRUD module of Play framework
控制器的類名必須是模型類的名稱與最後的「S」。
但是,你可以使用@ CRUD.For()註釋單獨定製的CRUD控制器的命名:
package controllers;
import models.Category;
@CRUD.For(Category.class)
public class Categories extends CRUD {
}
編輯:通過CRUD模塊的源代碼
快速略讀之後,我認爲模型命名分辨率在{位置播放} /modules/crud/app/controllers/CRUD.java(適用於版本1.2.4)在260行左右:
259 String name = controllerClass.getSimpleName().replace("$", "");
260 name = "models." + name.substring(0, name.length() - 1);
只需查找沒有控制器名稱的最後一個字符的單詞即可找到型號名稱。 (我剛剛測試過,你甚至可以將你的CRUD控制器命名爲'Categoryz',它的工作原理很好)
所以,如果你真的想以'傳統'方式解決這個問題,你可以修改260行CRUD.java並利用一些庫進行單數複數轉換,如Inflector in ModeShape。但在我看來,使用@CRUD.For註釋是很好,更具成本效益。
相關問題
- 1. Play Framework 2.0 - Restful URL命名約定
- 2. Play Framework CRUD
- 3. Play Framework CRUD分頁
- 4. 命名約定
- 5. 命名約定
- 6. 忽略Ebean命名約定
- 7. PHP特徵命名約定?
- 8. TSQL命名約定〜這個命名約定叫什麼名字?
- 9. c#命名約定
- 10. Linq2sql命名約定
- 11. PHP命名約定?
- 12. serialVersionUID命名約定
- 13. SQL命名約定
- 14. Oracle命名約定
- 15. 表命名約定?
- 16. MvvmCross命名約定
- 17. MySQL命名約定
- 18. Python命名約定
- 19. 頭命名約定
- 20. xmlns命名約定
- 21. Ruby命名約定?
- 22. BEM:命名約定
- 23. Protobuf命名約定
- 24. .NET命名約定
- 25. FFMPEG命名約定
- 26. 命名約定Rails
- 27. CodeRush命名約定
- 28. Microsoft命名約定
- 29. 命名約定DependencyProperty.RegisterAttached
- 30. DAO命名約定