2016-05-12 18 views
2

Silverstripe V2では、Obj1.Obj2.Obj3.Obj3Fieldなどの関係にまたがる検索可能なフィールドを作成することができましたが、現在V3では次のエラーが生成されています。 。

[User Error] Uncaught LogicException: relation can't be called on an UnsavedRelationList. 
GET /zz_silverstripe_default/admin/mymodeladmin/ 
Line 391 in C:\xampp\htdocs\zz_silverstripe_default\framework\model\UnsavedRelationList.php 
Source 
390  public function relation() { 
391   throw new LogicException(__FUNCTION__ . " can't be called on an UnsavedRelationList."); 
392  } 
Trace 
UnsavedRelationList->relation(EndObject) 
DataObject.php:3009 
DataObject->relObject(MiddleDataObjects.EndObject.Name) 
DataObject.php:2285 
DataObject->scaffoldSearchFields() 
DataObject.php:2230 
DataObject->getDefaultSearchContext() 
ModelAdmin.php:173 

これを再現するためにコードされています...

class MyModelAdmin extends ModelAdmin { 
    static $managed_models = array('RootDataObject'); 
    static $url_segment = 'mymodeladmin'; 
    static $menu_title = 'MyModelAdmin'; 
    static $model_importers = array(); 
} 

class RootDataObject extends DataObject { 
    private static $db = array('Name' => 'Varchar(255)'); 
    private static $has_many = array('MiddleDataObjects' => 'MiddleDataObject'); 
    static $searchable_fields = array('MiddleDataObjects.EndObject.Name'); 
} 

class MiddleDataObject extends DataObject { 
    private static $db = array('Name' => 'Varchar(255)'); 
    private static $has_one = array('RootDataObject' => 'RootDataObject'); 
    private static $many_many = array('EndDataObjects' => 'EndDataObject'); 
} 

class EndDataObject extends DataObject { 
    private static $db = array('Name' => 'Varchar(255)'); 
    private static $belongs_many_many = array('OtherDataObjects' => 'OtherDataObject'); 
} 

私はそれが簡単にこの問題を再現するために作るために多くの白いスペースといくつかのPHPタグとhttp://pastebin.com/QBfU8Fubにこのコードをアップロードしました。私は基本的にこれまでの動作に従っていますので、この素晴らしいCMSから期待していたことをするために検索コンテキストとフィルタを手動で書き込む必要はありません。

答えて

関連する問題