SilverStripe 3: ModelAdmin с DataObject с $has_many для DataObject выдает ошибку
В SilverStripe 3 у меня есть два связанных объекта DataObject, Order
а также OrderItem
, Order
имеет много OrderItems
, OrderItem
имеет один Order
,
Я управляю Order
с ModelAdmin.
Я могу создать новый OrderItem
но когда он пытается загрузить, я получаю следующую ошибку:
ВЫБЕРИТЕ DISTINCT "OrderItem". "ClassName", "OrderItem". "Created", "OrderItem". "LastEdited", "OrderItem"."ItemQuantity", "OrderItem"."ItemDiscount", "OrderItem"."OrderID", "OrderItem"."ProductID", "OrderItem"."ID", CASE, КОГДА "OrderItem". "ClassName" НЕ НЕДОСТУПЕН, чем "OrderItem"."ClassName" ELSE 'OrderItem' END AS "RecordClassName", "Product"."Title" FROM "OrderItem" WHERE ("OrderID" = '9') И ("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');
Удаление, которое решило проблему.
1 ответ
Так что есть еще один вопрос без ответа, @MilesParker отредактировал в вопросе:
Я нашел проблему, которая у меня была.
public static $default_sort = array('Product.Title');
Удаление, которое решило проблему.
Эта линия была бы на OrderItem
Класс как это то, что показывает ошибка SQL. Проблема могла быть вызвана отсутствием dev/build
однако это также могло быть связано с ошибкой в этой конкретной версии Silverstripe 3.0.