Нужна помощь - вывод 5 топиков пользователя.

В экшене пишу:
$myTopic=$this->Topic_GetTopicsPersonalByUser($oTopic->getUserId(),1,5,0,0);
// в надежде получить 5 последних топиков определенного юзера

$this->Viewer_Assign('myTopic',$myTopic);
// отправляю ее в шаблон


В шаблоне:
{foreach from=$myTopic item=myTopic} 
тест
{/foreach}


И в итоге получаю 2 раза «тест», а должно быть 5 раз. А если вместо «тест» написать {$myTopic->getBlogUrl()} — то вообще ошибки вылазят.

Где я не прав?

4 комментария

avatar
GetTopicsPersonalByUser массив вида array('collection','count'). Посмотри реализацию этого метода в модуле Topic
  • ort
  • +3
avatar
Смотрел, но так и не понял, что же делать. Программирование у меня на уровне копипаста ;) Если бы в 2х словах о допущенной ошибке и принципах как надо действовать — было бы очень круто!
avatar

$myTopic=$this->Topic_GetTopicsPersonalByUser(<ид пользователя>,<опубликован ли топик>,<любое число*>,<номер страницы>,<число топиков на странице>);

* не передается, в ограничения при выборе топиков.
т.е. тебе надо указать

$aMyResult=$this->Topic_GetTopicsPersonalByUser(<ид пользователя>,1,0,1,5);
$aMyTopics=$aMyResult['collection'];
$this->Viewer_Assign('aMyTopics',$aMyTopics);
 
Ort, правильно тебе указал что коллекция передается, т.к. ты сразу думаешь, что топики получил и пытаешься их вывести.
Так же я переименовал переменные, чтобы не путаться, если набор объектов, то лучше переменную называть с «a», а если конкретный объек уже с «o».

а в шаблоне

{foreach from=$aMyTopics item=oMyTopic}
{$oMyTopic->getTitle()}
{/foreach}
 
avatar
Вышка! Огромное спасибо, многое стало понятнее ;)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.