mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
BUGFIX: singleton('Group')->Members() fails
Running Members() on a Group that has no Db record causes UnsavedRelationList to be returned by DirectMembers() which in turn causes alterDataQuery() to fall over when called on an UnsavedRelationList. This just adds a simple check to prevent it.
This commit is contained in:
parent
6394eaf6a3
commit
d36fbfb1b2
@ -251,9 +251,11 @@ class Group extends DataObject {
|
||||
// Remove the default foreign key filter in prep for re-applying a filter containing all children groups.
|
||||
// Filters are conjunctive in DataQuery by default, so this filter would otherwise overrule any less specific
|
||||
// ones.
|
||||
$result = $result->alterDataQuery(function($query){
|
||||
$query->removeFilterOn('Group_Members');
|
||||
});
|
||||
if(!($result instanceof UnsavedRelationList)) {
|
||||
$result = $result->alterDataQuery(function($query){
|
||||
$query->removeFilterOn('Group_Members');
|
||||
});
|
||||
}
|
||||
// Now set all children groups as a new foreign key
|
||||
$groups = Group::get()->byIDs($this->collateFamilyIDs());
|
||||
$result = $result->forForeignID($groups->column('ID'))->where($filter)->sort($sort)->limit($limit);
|
||||
|
Loading…
Reference in New Issue
Block a user