在SilverStripe 3中,我有两个相关的数据对象,Order
和OrderItem
。 Order
有很多OrderItems
。 OrderItem
有一个Order
。
我正在使用ModelAdmin管理Order
。
我可以创建一个新的OrderItem
但是当它尝试加载时我收到以下错误:
SELECT DISTINCT“OrderItem”。“ClassName”,“OrderItem”。“Created”,“OrderItem”。“LastEdited”,“OrderItem”。“ItemQuantity”,“OrderItem”。“ItemDiscount”,“OrderItem”。“ OrderID“,”OrderItem“。”ProductID“,”OrderItem“。”ID“,CASE WHEN”OrderItem“。”ClassName“IS NOT NULL那么”OrderItem“。”ClassName“ELSE'OrderItem'END AS”RecordClassName“,”产品”,‘标题’ 来自“OrderItem” WHERE(“OrderID”='9')AND(“OrderItem”。“ID”= 11) 按产品订购。标题ASC 限制1
'字段列表'中的未知列'Product.Title'
这是我的代码:
class Order extends DataObject {
public static $db = array(
'OrderDate'=>'Date',
'FulfilledDate'=>'Date',
'OrderStatus'=>'Enum("New, InvoiceRequested, InvoiceSent, Paid, Cancelled")',
'ShippingStatus'=>'Enum("Unshipped, Shipped")'
);
public static $has_one = array(
'Customer' => 'Customer'
);
public static $has_many = array(
'OrderItems' => 'OrderItem'
);
// ...
}
class OrderItem extends DataObject {
public static $db = array(
'ItemQuantity'=>'Int',
'ItemDiscount'=>'Decimal'
);
public static $summary_fields = array(
'Product.Title',
'ItemQuantity',
'ItemDiscount'
);
public static $has_one = array(
'Order' => 'Order',
'Product' => 'Product'
);
// ...
}
有关如何在ModelAdmin中将联接添加到Product
对象/表的任何想法?
我发现了我遇到的问题。
public static $default_sort = array('Product.Title');
删除修复问题。
答案 0 :(得分:2)
正好有一个没有答案的问题,@ MilesParker编辑了这个问题:
我发现了我遇到的问题。
public static $default_sort = array('Product.Title');
删除修复问题。
这一行应该在OrderItem
类上,因为这是SQL错误显示的内容。该问题可能是由于缺少dev/build
引起的,但也可能是由于该特定版本的Silverstripe 3.0中存在错误。