5121 Posts in 1527 Topics by 1119 members
|Go to End|
23 May 2012 at 1:36am
We've created a class which extends page called DetailPropertyPage. It just has loads of extra frields and some one-to-many relationships to Images and DataObjects.
I'm writting a custom search function at the moment to return matching DataObjects.
Here is my code:
$properties = DataObject::get('DetailPropertyPage', $queryString, '`DetailPropertyPage`.`Price` ASC', '', '0, 30');
I know that $queryString is correct because if I paste it into phpMyAdmin then I get results but it always turns up NULL in SilverStripe. Am I using the wrong caller class?
Just in case it is useful, heres the typical contents for $queryString:
`DetailPropertyPage`.`Status`='S' and `DetailPropertyPage`.`PropertyType`='Terraced' and `DetailPropertyPage`.`Bedrooms`>=1 and `DetailPropertyPage`.`Price`>=50000 and `DetailPropertyPage`.`Price`<=150000
26 May 2012 at 8:10pm
Using table names directly in the DataObject get is a little tricky as the table name for pages will actually be TableName_Live rather than TableName when viewing the published site. See https://github.com/silverstripe/silverstripe-forum/blob/master/code/ForumHolder.php#L345 for an example of the logic you need to include to get the right table for the query.
PROTIP you can use ?showqueries=1 to see the SQL queries SilverStripe is running. Use that to grab the SQL query running and double check that.
|Go to Top|