21489 Posts in 5783 Topics by 2622 members
General Questions
SilverStripe Forums » General Questions » Model Admin - so many questions, so little documentation
General questions about getting started with SilverStripe that don't fit in any of the categories above.
Moderators: martimiz, Howard, Sean, Ryan M., biapar, Willr, Ingo, swaiba, simon_w
| Go to End | ||
| Author | Topic: | 6853 Views |
-
Re: Model Admin - so many questions, so little documentation

13 August 2010 at 1:43am
Hi swaiba,
I already found a solution.
I already have a class ItemAdmin extending ModelAdmin.
I created a class ItemAdmin_CollectionController extending ModelAdmin_CollectionController class.Then I override ModelAdmin_CollectionController class by setting $collection_controller_class under class ItemAdmin
==
public static $collection_controller_class ="ItemAdmin_CollectionController"
==I overloaded getSearchQuery() >>
=====
function getSearchQuery( $searchCriteria ) {$query = parent::getSearchQuery( $searchCriteria )->leftJoin( 'Category', 'Category.ID = Product.CategoryID' );
return $query->orderby( 'Category.Name, Product.Name ASC' );}
=====It worked!
There's also another way though. You can extend TableListField and set $resultsTableClassName to class name you created.
You can then overload function getQuery() like this >>
===
function getQuery() {
$this->customQuery->leftJoin( 'Category', 'Category.ID = Product.CategoryID');
$this->customQuery->orderby( 'Category.Name, Product.Name ASC' );
return parent::getQuery();
}
===I hope this helps to everyone who will encounter this issue.
-
Re: Model Admin - so many questions, so little documentation

13 August 2010 at 2:19am Last edited: 24 September 2010 12:53am
nice one! that is a very simple example - thanks for posting the solution
this has worked very well for what I wanted, I did also add a condition to ensure that the extra condirtion is only applied to the intended managed model...
if ($this->modelClass == 'DataObjectName')
{
$query->where[] = "myfield = xyz";
}
| 6853 Views | ||
| Go to Top |


