【问题标题】:SilverStripe 3: ModelAdmin with DataObject with $has_many to DataObject gives errorSilverStripe 3:ModelAdmin 与 DataObject 与 $has_many 到 DataObject 给出错误
【发布时间】:2013-04-17 09:20:15
【问题描述】:

在 SilverStripe 3 中,我有两个相关的 DataObjects,OrderOrderItemOrder 有很多 OrderItemsOrderItem 有一个 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 THEN "OrderItem"."ClassName" ELSE 'OrderItem' END AS "RecordClassName", "产品”.“标题” 来自“订单项” WHERE ("OrderID" = '9') AND ("OrderItem"."ID" = 11) ORDER BY Product.Title 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');

删除修复了问题。

【问题讨论】:

    标签: silverstripe modeladmin


    【解决方案1】:

    所以还有一个没有答案的问题,@MilesParker 编辑成问题:

    我找到了我遇到的问题。

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

    删除解决了问题。

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

    【讨论】:

      猜你喜欢
      • 2015-11-09
      • 2015-12-23
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多