From ed1373d22bb1a0ef618b6c5379fb74b0c931fb93 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Mon, 28 May 2012 18:45:59 +1200 Subject: [PATCH] MINOR Use better syntax for querying DataList in 3.0 upgrading guide --- docs/en/changelogs/3.0.0.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/en/changelogs/3.0.0.md b/docs/en/changelogs/3.0.0.md index ddfd3f0f1..c93040700 100644 --- a/docs/en/changelogs/3.0.0.md +++ b/docs/en/changelogs/3.0.0.md @@ -120,7 +120,7 @@ expressive notation (instead of unnamed arguments). // before DataObject::get('Member', '"FirstName" = \'Sam'\', '"Surname" ASC"); // after - DataList::create('Member')->filter(array('FirstName' => 'Sam'))->sort('Surname'); + Member::get()->filter(array('FirstName' => 'Sam'))->sort('Surname'); The underlying record retrieval and management is rewritten from scratch, and features lazy loading which fetches only the records it needs, as late as possible. @@ -135,13 +135,13 @@ now return a `DataList`. // before DataObject::get_one('Member', '"Email" = \'someone@example.com\''); // after - DataList::create('Member')->filter('Email', 'someone@example.com')->First(); + Member::get()->filter('Email', 'someone@example.com')->First(); :::php // before DataObject::get_by_id('Member', 5); // after - DataList::create('Member')->byID(5); + Member::get()->byID(5); Note that they will return a `DataList` even if they're empty, so if you want to check for the presence of records, please call the count() method on the `DataList`: @@ -160,7 +160,7 @@ In the 2.4 ORM it was sometimes necessary to bypass the ORM for performance reas this command would have been intolerably slow: :::php - DataList::create('SiteTree')->count(); + SiteTree::get()->count(); The 3.0 ORM is more intelligent gives you tools you need to create high-performance code without bypassing the ORM: @@ -169,7 +169,7 @@ bypassing the ORM: // before echo DB::query("SELECT COUNT(*) FROM \"SiteTree\"")->value(); // after - echo DataList::create('SiteTree')->count() + echo SiteTree::get()->count() Both `extendedSQL()` and `buildSQL()` have been deprecated. There is not currently any way of overriding the query generation code equivalent to overriding `buildSQL()` in 2.4, but this facility @@ -180,7 +180,7 @@ on any DataList. Note that modifications to this query will **not** be passed b // before $query = singleton('SiteTree')->extendedSQL('ParentID = 5'); // after - $query = DataList::create('SiteTree')->filter('ParentID', 5)->dataQuery()->query(); + $query = SiteTree::get()->filter('ParentID', 5)->dataQuery()->query(); We advise that you keep this kind of code to a minimum and that you use the DataList wherever possible. If you find yourself needing to bypass the ORM in SilverStripe 3, we suggest you raise this @@ -296,7 +296,7 @@ Upgrade example: Record listing $field = new TableListField('Companies', 'Company'); $field->setPageSize(20); // after - $field = new GridField('Companies', null, DataList::create('Company')); + $field = new GridField('Companies', null, Company::get()); $field->getConfig()->getComponentByType('GridFieldPaginator')->setItemsPerPage(20); Upgrade example: Record listing with view/edit interface @@ -305,7 +305,7 @@ Upgrade example: Record listing with view/edit interface // before $field = new ComplexTableField($myController, 'Companies', 'Company'); // after - $field = new GridField('Companies', null, DataList::create('Company'), GridFieldConfig_RecordEditor::create()); + $field = new GridField('Companies', null, Company::get(), GridFieldConfig_RecordEditor::create()); Upgrade example: Relationship editing