MINOR Use better syntax for querying DataList in 3.0 upgrading guide

This commit is contained in:
Sean Harvey 2012-05-28 18:45:59 +12:00
parent f3467a3337
commit ed1373d22b

View File

@ -120,7 +120,7 @@ expressive notation (instead of unnamed arguments).
// before // before
DataObject::get('Member', '"FirstName" = \'Sam'\', '"Surname" ASC"); DataObject::get('Member', '"FirstName" = \'Sam'\', '"Surname" ASC");
// after // 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 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. lazy loading which fetches only the records it needs, as late as possible.
@ -135,13 +135,13 @@ now return a `DataList`.
// before // before
DataObject::get_one('Member', '"Email" = \'someone@example.com\''); DataObject::get_one('Member', '"Email" = \'someone@example.com\'');
// after // after
DataList::create('Member')->filter('Email', 'someone@example.com')->First(); Member::get()->filter('Email', 'someone@example.com')->First();
:::php :::php
// before // before
DataObject::get_by_id('Member', 5); DataObject::get_by_id('Member', 5);
// after // 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 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`: 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: this command would have been intolerably slow:
:::php :::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 The 3.0 ORM is more intelligent gives you tools you need to create high-performance code without
bypassing the ORM: bypassing the ORM:
@ -169,7 +169,7 @@ bypassing the ORM:
// before // before
echo DB::query("SELECT COUNT(*) FROM \"SiteTree\"")->value(); echo DB::query("SELECT COUNT(*) FROM \"SiteTree\"")->value();
// after // after
echo DataList::create('SiteTree')->count() echo SiteTree::get()->count()
Both `extendedSQL()` and `buildSQL()` have been deprecated. There is not currently any way of 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 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 // before
$query = singleton('SiteTree')->extendedSQL('ParentID = 5'); $query = singleton('SiteTree')->extendedSQL('ParentID = 5');
// after // 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. 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 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 = new TableListField('Companies', 'Company');
$field->setPageSize(20); $field->setPageSize(20);
// after // after
$field = new GridField('Companies', null, DataList::create('Company')); $field = new GridField('Companies', null, Company::get());
$field->getConfig()->getComponentByType('GridFieldPaginator')->setItemsPerPage(20); $field->getConfig()->getComponentByType('GridFieldPaginator')->setItemsPerPage(20);
Upgrade example: Record listing with view/edit interface Upgrade example: Record listing with view/edit interface
@ -305,7 +305,7 @@ Upgrade example: Record listing with view/edit interface
// before // before
$field = new ComplexTableField($myController, 'Companies', 'Company'); $field = new ComplexTableField($myController, 'Companies', 'Company');
// after // 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 Upgrade example: Relationship editing