2017-06-15 29 views
6

İki nesnem var Schedule ve LocationPage. Nesne ScheduleLocationPage bir $has_one ilişkisi:SilverStripe has_one ilişki alanına göre sıralama "title"

class Schedule extends DataObject { 

    private static $db = array(
     'Date' => 'Date', 
    ); 

    private static $has_one = array(
     'Location' => 'LocationPage', 
    ); 
} 

ve

class LocationPage extends Page { 

    private static $db = [ 
     'Heading' => 'HTMLVarchar(250)', 
     'SubHeading' => 'Varchar(250)' 
    ]; 
} 

Ben bana bir hata verir ilişki alanında Title göre sıralamak için deneyin

.

[Kullanıcı Hatası] Yakalanmayan SS_DatabaseException: sorgusu çalıştırılamadı: DISTINCT "Programı SEÇ İşte

Schedule::get()->sort(['Location.Title' => 'ASC']); 

yukarıdaki kodu çağrılırken alıyorum sıralama hatadır: İşte sıralama kodudur "." ClassName "," Schedule "." LastEdited "," Schedule "." Oluşturuldu "," Schedule "." Date "," Schedule "." LocationID "," Schedule "." ID ", CASE WHEN" Schedule "." ClassName "NULL" "NEDEN" "Zamanlama". "ClassName" ELSE 'Zamanlama' END AS "RecordClassName", "LocationPage". "Başlık" AS "_SortColumn0" FROM "Zamanlama" FROM "Yer Sayfası" ON "LocationPage" "ID" = "Schedule". "LocationID" INNER JOIN "Sayfa" ON "LocationPage". "ID" = "Sayfa". "ID" INNER. "LocationPage" AÇIK "sitetree". "ID" = "sitetree" "_SortColumn0" ASC Bilinmeyen sütununda 'LocationPage.Title' 'alan listesinde' Bu soruna neden olan nedir

yılında TARAFINDAN. "Kimlik" SİPARİŞ KATILIN?

+1

Bunun Silverstripe hatası olduğunu ekliyor. Sorunu açtım. Umarım bunu düzeltirler. –

+1

Referans için sorun: https://github.com/silverstripe/silverstripe-framework/issues/7029 –

cevap

0

Bu soruna yönelik bir geçici çözüm, has_one ilişkisinin LocationPage yerine SiteTree'ye yönlendirilmesidir.

İlgili konular