【问题标题】:SilverStripe sort by has_one relation field "title"SilverStripe 按 has_one 关系字段“标题”排序
【发布时间】:2017-11-17 14:46:46
【问题描述】:

我有两个对象 ScheduleLocationPage。对象ScheduleLocationPage$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'

是什么导致了这个问题?

【问题讨论】:

标签: php silverstripe


【解决方案1】:

解决此问题的方法是使 has_one 关系指向 SiteTree 而不是 LocationPage。

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    相关资源
    最近更新 更多