4

在 SilverStripe 3 中,我有两个相关的 DataObject,OrderOrderItem. Order有很多OrderItemsOrderItem有一个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');

删除它解决了这个问题。

4

1 回答 1

2

正因为如此,还有一个没有答案的问题,@MilesParker 编辑了这个问题:

我发现了我遇到的问题。

public static $default_sort = array('Product.Title');

删除它解决了这个问题。

这条线本来应该在OrderItem课堂上,因为这就是 SQL 错误所显示的。该问题可能是由于缺少 a 引起的,dev/build但也可能是由于该特定版本的 Silverstripe 3.0 中的错误引起的。

于 2015-04-21T23:09:27.370 回答