2012-02-15 71 views
1

是否可以将Entity放入嵌套的文件夹/包中并仍然使用CRUD模块进行基本管理?CRUD模块和嵌套模型和/或控制器

我正在使用YABE app,playframework 1.2.4。

我创造了另一个实体,称为“”,我试图把它的子文件夹名为“CMS”,在这样的所有文件夹:

models 
-- cms 
    -- Page.java 
etc. 

现有的链接为矢部实体可以是这样创建的:

<a href="@{Users.list()}">Users</a> 

生成路线管理/用户,并引导您到一个CRUD生成的页面

但如果你把这样的东西,例如还嵌套的文件夹中创建控制器:

<a href="@{cms.Pages.list()}">Pages</a> 

产生链接这样cms.pages /列表,并导致你“找不到

即使我把控制器集成在一个控制器根文件夹没有按不起作用,很明显,因为CRUD模块在子文件夹中找不到模型类。

当与页面相关的类位于控制器和模型的根目录下时,一切正常,但我想在这里找到类似“包”的东西。

我在做什么错?

是这样的可能吗?

如果我将所有内容都移动到单独的模块,它会工作吗?

回答

1

这是可能的。但是,我发现将实体的CRUD模型保留在不同的包中使事情变得更加复杂一些,并没有增加那么多的价值。

反正请确保您的控制器使用@ CRUD.for注解让他们知道要管理哪些实体:

@CRUD.For(User.class) 
public class Users extends CRUD { 
} 

如果您需要将您的观点。子包,玩CRUD:OV --template CMS如预期,如果你砍的污物commands.py的东西,如除/用户/列表将无法正常工作:

p = a.split('/')[0] 
c = a.split('/')[1] 
t = a.split('/')[2] 
app.override('app/views/CRUD/%s.html' % t, 'app/views/%s/%s/%s.html' % (p, c, t)) 

我不记得了肯定,但我认为你可能需要的东西,如重新定义你的路由规则:

GET  /cms/?   cms.Users.index 
GET  /cms/users  cms.Users.list 
GET  /cms/users/new cms.Users.blank 
GET  /cms/users/{id} cms.Users.show 
+0

它与模块的情况相同吗?我不喜欢Play!模块的工作方式,所以我尝试在单个应用程序中制作“包”。 – 2012-02-15 21:45:19

+0

这是特定于crud模块。除控制器/视图/模型外,如果您愿意,可以按照您认为合适的方式打包课程。模块非常适合为您的应用程序添加功能,但如果您需要更多控制,则可以随时在您的应用程序中编辑和包含模块代码。 – emt14 2012-02-18 05:28:55