2016-04-15 3 views
1

У меня есть шаблон, который должен отображать пользователей, которые были назначены этой странице через 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 %> но не работать либо


Редактировать

Просто, чтобы упомянуть, я только пытаюсь получить имена пользователей в данный момент, но вам нужно будет получить несколько вещей из идентификатора, например, имя, фамилия, изображениеURL

ответ

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 %> 

Чтобы получить данные, где мне это нужно!

Смежные вопросы