我有一个模板,需要显示已通过GridField分配给该页面的用户。
当用户被分配到他们的ID存储的页面时,我正在检索那样的信息
class Shows_Controller extends Page_Controller {
# Get key people from ShowsContact class / input via ShowsContact GridField
public function getKeyPeople(){
if($this->ShowsContacts()->exists()){
$result = array();
foreach($this->ShowsContacts()->column('MemberID') as $teamMemberID){
array_push($result, Member::get()->byID($teamMemberID)->Nickname);
}
var_dump($result); # Using var_dump here to see if I get what I need...
}
}
}
我已经尝试过使用SilverStripes ArrayList但是也无法使用它 - 这是同样的事情,但使用ArrayList ......
$result = new ArrayList();
foreach($this->ShowsContacts()->column('MemberID') as $teamMemberID){
$result->add(Member::get()->byID($teamMemberID)->Nickname);
}
var_dump($result);
这是我期待的输出,但我不明白如何循环结果和我需要使用的变量,以便循环在我的模板中显示结果..?
var_dump的结果是这样的,我需要将这些名称输出到网页的相关部分
array(3) {
[0]=>
string(6) "vlad-s"
[1]=>
string(10) "lawrence-r"
[2]=>
string(8) "darren-g"
}
我也尝试过使用<% with %>
,但这种方法都不起作用
修改
请注意,我目前只是尝试获取用户名,但需要从ID获取多项内容,例如Firstname,Surname,ImageURL
答案 0 :(得分:2)
哇终于让它工作我需要它了!
我遗漏的是在尝试添加到ArrayData()
ArrayList()
这是工作代码
class Shows_Controller extends Page_Controller {
# Get key people from ShowsContact class // input via ShowsContact GridField
public function getKeyPeople(){
if($this->ShowsContacts()->exists()){
$result = new ArrayList();
foreach($this->ShowsContacts()->column('MemberID') as $teamMemberID){
$result->add(new ArrayData(array(
'Nickname' =>Member::get()->byID($teamMemberID)->Nickname
)
));
}
return $result;
}
}
}
现在在我的模板中我可以使用
<% loop KeyPeople %>
$Nickname
<% end_loop %>
将数据输出到我需要的地方!