在 SilverStripe 3 中,我有两个相关的 DataObject, OrderOrderItemOrder 有很多 OrderItemsOrderItem 有一个 Order

我正在使用 ModelAdmin 管理 Order

我可以创建一个新的 OrderItem 但是当它尝试加载时出现以下错误:



这是我的代码:

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');

删除它解决了问题。

最佳答案

就这样还有一个未回答的问题,@MilesParker 编辑了这个问题:



这一行应该在 OrderItem 类上,因为这是 SQL 错误显示的内容。该问题可能是由于缺少 dev/build 引起的,但也可能是由于该特定版本的 Silverstripe 3.0 中存在错误。

关于SilverStripe 3 : ModelAdmin with DataObject with $has_many to DataObject gives error,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16181570/

10-10 17:19