Reputation: 1046
I have this class:
class Product extends DataObject {
static $db = array(
'Name' => 'Varchar',
'ProductType' => 'Varchar',
'Price' => 'Currency'
);
}
The database table looks as follows:
---------------------------------
| Name | ProductType | Price |
|-----------+-------------+-------|
| Product 1 | Type1 | 100 |
| Product 2 | Type1 | 240 |
| Product 3 | Type2 | 10 |
| Product 4 | Type1 | 100 |
---------------------------------
I would like to have 2 model admins:
class MyFirstModel extends ModelAdmin {
public static $managed_models = array(
Product
);
}
class MySecondModel extends ModelAdmin {
public static $managed_models = array(
Product
);
}
What is the best way to come to this result:
MyFirstModel
should show me all entries where ProductType
in table is Type1
And
MySecondModel
should show me all entries where ProductType
in table is Type2
Upvotes: 0
Views: 737
Reputation: 2644
getList()
should be the answer. DOC here http://doc.silverstripe.org/framework/en/reference/modeladmin#results-customization
So something like:
public function getList() {
$list = parent::getList();
if($this->modelClass == 'Product') {
$list->exclude('ProductType', 'Type1');
}
return $list;
}
If you have more than 2 ProductType
you can use an array to exclude multiple values like
$list->exclude('ProductType', array('Type2', 'Type3'));
Upvotes: 5