【发布时间】:2017-11-17 14:46:46
【问题描述】:
我有两个对象 Schedule 和 LocationPage。对象Schedule 与LocationPage 有$has_one 关系:
class Schedule extends DataObject {
private static $db = array(
'Date' => 'Date',
);
private static $has_one = array(
'Location' => 'LocationPage',
);
}
和
class LocationPage extends Page {
private static $db = [
'Heading' => 'HTMLVarchar(250)',
'SubHeading' => 'Varchar(250)'
];
}
当我尝试按关系字段Title 进行排序时,它给了我一个错误。这是排序代码:
Schedule::get()->sort(['Location.Title' => 'ASC']);
这是我在调用上述代码时遇到的排序错误:
[用户错误] 未捕获的 SS_DatabaseException:无法运行查询:SELECT DISTINCT "Schedule"."ClassName", "Schedule"."LastEdited", "Schedule"."Created", "Schedule"."Date", "Schedule"."LocationID", "Schedule"."ID", CASE WHEN "Schedule"."ClassName" IS NOT NULL THEN "Schedule"."ClassName" ELSE 'Schedule' END AS "RecordClassName", "LocationPage". “标题”作为“_SortColumn0”从“计划”在“位置页面”上左连接“位置页面”。“ID”=“计划”。“位置ID”在“位置页面”上的内部连接“页面”。“ID”=“页面”。 "ID" INNER JOIN "SiteTree" ON "LocationPage"."ID" = "SiteTree"."ID" ORDER BY "_SortColumn0" ASC '字段列表'中的未知列 'LocationPage.Title'
是什么导致了这个问题?
【问题讨论】:
-
看来这是 Silverstripe 错误。我打开了这个问题。希望他们能解决这个问题。
标签: php silverstripe