grails 将域对象添加到另一个域而域没有关系
grails adding a domain object to another domain without the domains having a relationship
美好的一天。我是 grails 和 groovy 的新手,我想做的是将域对象(在我的例子中是相册对象)添加到不同的域(购物车)。当用户在查看相册时单击 'add to cart' link 时,HomeController 的 'buy' 操作应该创建相册的副本并将其放入购物车域,除了我有不知道该怎么做。这是我得到的。
class HomeController{
def index(){
//displays a list of albums and a 'add to cart' link at each album in the list
}
def buy(){
//Here's where the code should go.
redirect(controller: "home", action: "index")
}
}
我认为您在尝试 views/controllers:
之前需要更多地考虑您的域类
您有一个域对象(在我的例子中是相册对象)到另一个域(购物车)
域类:
class User {
String name
static hasMany = [orders:Orders]
}
Class Album {
String name
}
class Order {
User user
Album album
}
视图:显示此内容的控制器操作:
<!-- by defining user.id and album.id when grails receives the .id it binds that id to the actual object so --!>
<!-- User user = params.user // is the user object bound to user.id --!>
<g:form action="save" controller="myController">
<g:hidden name="user.id" value="1"/>
<g:select name="album.id" from="${mypackage.Album.list()}" optionKey="id" optionValue="name"/>
<g:submitButton name="save">
</g:form>
接收该保存操作的控制器 - 保存功能实际上应该接管给事务服务 = 这只是为了非常基本地向您展示:
package mypackage
class MyController {
def save() {
Order order= new Order(params)
order.save()
//
//User user=User.get(params.user.id)
User user=params.user
user.addToOrders(order)
user.save()
render "album added to order class and then order added to users class"
}
}
美好的一天。我是 grails 和 groovy 的新手,我想做的是将域对象(在我的例子中是相册对象)添加到不同的域(购物车)。当用户在查看相册时单击 'add to cart' link 时,HomeController 的 'buy' 操作应该创建相册的副本并将其放入购物车域,除了我有不知道该怎么做。这是我得到的。
class HomeController{
def index(){
//displays a list of albums and a 'add to cart' link at each album in the list
}
def buy(){
//Here's where the code should go.
redirect(controller: "home", action: "index")
}
}
我认为您在尝试 views/controllers:
之前需要更多地考虑您的域类您有一个域对象(在我的例子中是相册对象)到另一个域(购物车)
域类:
class User {
String name
static hasMany = [orders:Orders]
}
Class Album {
String name
}
class Order {
User user
Album album
}
视图:显示此内容的控制器操作:
<!-- by defining user.id and album.id when grails receives the .id it binds that id to the actual object so --!>
<!-- User user = params.user // is the user object bound to user.id --!>
<g:form action="save" controller="myController">
<g:hidden name="user.id" value="1"/>
<g:select name="album.id" from="${mypackage.Album.list()}" optionKey="id" optionValue="name"/>
<g:submitButton name="save">
</g:form>
接收该保存操作的控制器 - 保存功能实际上应该接管给事务服务 = 这只是为了非常基本地向您展示:
package mypackage
class MyController {
def save() {
Order order= new Order(params)
order.save()
//
//User user=User.get(params.user.id)
User user=params.user
user.addToOrders(order)
user.save()
render "album added to order class and then order added to users class"
}
}