在 SilverStripe 3 中,我有两个相关的 DataObject,Order
和OrderItem
. Order
有很多OrderItems
。OrderItem
有一个Order
。
我正在Order
使用 ModelAdmin 进行管理。
我可以创建一个新的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 THEN "OrderItem"."ClassName" ELSE 'OrderItem' END AS "RecordClassName", "Product"。来自“OrderItem”的“Title” WHERE (“OrderID” = '9') AND (“OrderItem”.“ID” = 11) ORDER BY Product.Title ASC LIMIT 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');
删除它解决了这个问题。