7913 Posts in 1355 Topics by 930 members
DataObjectManager Module
SilverStripe Forums » DataObjectManager Module » DataObject::get('Member') - Foreach Statement.
Discuss the DataObjectManager module, and the related ImageGallery module.
Moderators: martimiz, UncleCheese, Howard, Sean, Ryan M., biapar, Willr, Ingo, swaiba, simon_w
|
Page:
1
|
Go to End | |
| Author | Topic: | 1454 Views |
-
DataObject::get('Member') - Foreach Statement.

31 August 2010 at 12:47am
Hi everyone,
I am having problems looping through a members list (DataObjectSet) and would like to ask for a small amount of your time to advise me please.
Example code of problem:
OurSupporters.php
function pullMembers(){
$members = DataObject::get('Member');
foreach($members as $member){
return $member;
}
}An example of the output file:
OurSupporters.ss
<h1>$Title</h1>
<table>
<th>
<td>First Name</td>
<td>Surname</td>
</th>
<% control pullMembers %>
<tr>
<td>$FirstName</td>
<td>$Surname</td>
</tr>
<% end_control %>
</table>When running it will only display the first member - though it may be a problem with the array so I did try intoArray() but didn't work.
Though if I remove the foreach statement and "return $members;" it lists all the members but unfortunately it does not help my problem as I need to add each member into a new member class to use inGroup() on a ifelse statement.
This causes a problem when I wish to find group of a member, like so:
OurSupporters.php
function pullMembers(){
$members = DataObject::get('Member');
foreach($members as $member){$privateMember = new Member();
$privateMember = $member;if($privateMember->inGroup(5)){
return $member;
}else{
//Do nothing
}
}
}Thanks for your help in advance. I am new to silverstripe and convinced I am overlooking something here...
-
Re: DataObject::get('Member') - Foreach Statement.

31 August 2010 at 1:07am Last edited: 31 August 2010 1:09am
Your pullMembers method can only return 1 Member max as you're using return on the first iteration of members.
The following will loop through all members.
PHP:function pullMembers(){
$members = DataObject::get('Member');
return $members;
}
SS:<% control pullMembers %>
<tr>
<td>$FirstName</td>
<td>$Surname</td>
</tr>
<% end_control %> -
Re: DataObject::get('Member') - Foreach Statement.

31 August 2010 at 8:42pm
Thanks for your help.
Now I understand the error was the 'return' in the loop the rest works fine.
function pullMembers(){
$members = DataObject::get('Member');
foreach($members as $member){
$unknownMember = new Member();
$unknownMember = $member;
if($unknownMember->inGroup(5) != true){
$members->remove($unknownMember);
break;
}
}
return $members;
} -
Re: DataObject::get('Member') - Foreach Statement.

1 September 2010 at 1:46am
$unknownMember = new Member();
$unknownMember = $member;?!?!?!?!?!?!
| 1454 Views | ||
|
Page:
1
|
Go to Top |


