是否可以将Entity放入嵌套文件夹/包中并仍使用CRUD模块进行基本管理?
我正在使用 YABE 应用,playframework 1.2.4。
我创建了另一个名为“ Page ”的实体,我尝试将其放在所有文件夹中名为“cms”的子文件夹中,如下所示:
models
-- cms
-- Page.java
etc.
YABE实体的现有链接创建如下:
<a href="@{Users.list()}">Users</a>
生成路线 admin / users 并引导您进入CRUD生成的页面
但如果你把这样的东西,例如还可以在嵌套文件夹中创建控制器:
<a href="@{cms.Pages.list()}">Pages</a>
生成 cms.pages / list 之类的链接,引导您“找不到”
即使我把控制器放在控制器根文件夹中也行不通,显然是因为CRUD模块找不到模型类,因为它在子文件夹中。
当页面相关的类在控制器和模型的根目录中时,一切正常,但我想在这里找到类似“包”的内容。
我做错了什么?
这样的事情可能吗?
如果我将所有内容都移到一个单独的模块中,它会起作用吗?
答案 0 :(得分:1)
有可能。然而,我发现将实体的CRUD模型保留在不同的包中会使事情变得更复杂,并没有增加那么多的价值。
无论如何,请确保您的控制器使用@ CRUD.for注释,以便他们知道要管理的实体:
@CRUD.For(User.class)
public class Users extends CRUD {
}
如果您需要将视图放在子包中,请播放crud:ov --template cms / Users / list将无法按预期工作,除非您使用以下内容破解crud 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