2017-06-15 49 views
6

我有兩個對象ScheduleLocationPage。對象Schedule$has_one關係LocationPageSilverStripe按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「計劃「。」ClassName「,」Schedule「,」LastEdited「,」Schedule「,」Created「,」Schedule「,」Date「,」Schedule「,」LocationID「,」Schedule「,」ID「 「。」ClassName「IS NOT NULL THEN」Schedule「。」ClassName「ELSE'Schedule'END AS」RecordClassName「,」LocationPage「。」Title「AS」_SortColumn0「FROM」Schedule「LEFT JOIN」LocationPage「ON」LocationPage「 。「ID」=「Schedule」。「LocationID」INNER JOIN「Page」ON「LocationPage」。「ID」=「Page」。「ID」INNER JOIN 「SiteTree」 ON 「LocationPage」。 「ID」= 「SiteTree」。 「ID」 ORDER BY在 '字段列表'

是什麼原因造成的問題 「_SortColumn0」 ASC未知列 'LocationPage.Title'?

+1

它接縫,這是銀條紋錯誤。我打開了這個問題。希望他們解決這個問題。 –

+1

此問題僅供參考:https://github.com/silverstripe/silverstripe-framework/issues/7029 –

回答

0

解決此問題的方法是將has_one關係指向SiteTree而不是LocationPage。