mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
MINOR Use better syntax for querying DataList in 3.0 upgrading guide
This commit is contained in:
parent
f3467a3337
commit
ed1373d22b
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user