Сущности в шаблонах

Столкнулся с такой ситуацией.
1.Из базы получаю список топиков.
2.Передаю их в сущность и экшен

	public function GetTopicBlog($iPage,$sBandsName){
		$sql= "SELECT ".Config::Get('db.table.bands_topic').".*,".Config::Get('db.table.bands').".bands_id,".Config::Get('db.table.bands_blog').".blog_id 
		FROM ".Config::Get('db.table.bands_topic').",".Config::Get('db.table.bands').",
		".Config::Get('db.table.bands_blog')."
		WHERE ".Config::Get('db.table.bands').".bands_url='".$sBandsName."' 
		AND ".Config::Get('db.table.bands_blog').".bands_owner_id=".Config::Get('db.table.bands').".bands_id 
		AND ".Config::Get('db.table.bands_topic').".blog_id = ".Config::Get('db.table.bands_blog').".blog_id";
		
		 if ($aRow=$this->oDb->select($sql,$sBandsName)) {
		
		 return  Engine::GetEntity('PluginBands_ModuleBlogbands_EntityBlogbands',$aRow);
         }
	}


class PluginBands_ModuleBlogbands_EntityBlogbands extends Entity {
    public function getTopicId() {
        return $this->_aData['topic_id'];
		
    }
    public function getTopicTitle() {
        return $this->_aData['topic_title'];
    }
}



	$aResult=$this->PluginBands_ModuleBlogbands_GetTopicBlog($iPage,$sBandsName);
	$this->Viewer_Assign('aTopics',$aResult);



	{foreach from=$aTopics item=oTopic}   
         {$oTopic->getTopicTitle()}
        {/foreach}


И вот тут проблема. Цикл не работает. И список тайтлов топиков не выводит.
Как с этим быть?

Содержание $aResult при выводе в экшене

PluginBands_ModuleBlogbands_EntityBlogbands Object ( [_aData:protected] => Array ( [0] => Array ( [topic_id] => 1 [blog_id] => 3 [user_id] => 1 [topic_type] => topic [topic_title] => Мэр Костромы Александр Кудрявцев досрочно сложил полномочия [topic_tags] => Кострома,депутат,повительство [topic_date_add] => 2011-02-16 09:41:09 [topic_date_edit] => 2011-02-16 21:31:33 [topic_user_ip] => 46.42.30.223 [topic_publish] => 1 [topic_publish_draft] => 1 [topic_publish_index] => 1 [topic_rating] => 1.000 [topic_count_vote] => 1 [topic_count_read] => 48 [topic_count_comment] => 5 [topic_cut_text] => [topic_forbid_comment] => 0 [topic_text_hash] => 4adad33714c3a90f89d375ff148be29a [bands_id] => 5 ) [1] => Array ( [topic_id] => 2 [blog_id] => 3 [user_id] => 1 [topic_type] => topic [topic_title] => Костромичи стали лучшими в экстремальных прыжках на велосипедах [topic_tags] => Кострома,победа,прыжки [topic_date_add] => 2011-02-16 09:41:59 [topic_date_edit] => 2011-02-16 21:31:06 [topic_user_ip] => 46.42.30.223 [topic_publish] => 1 [topic_publish_draft] => 1 [topic_publish_index] => 1 [topic_rating] => 0.000 [topic_count_vote] => 0 [topic_count_read] => 15 [topic_count_comment] => 0 [topic_cut_text] => [topic_forbid_comment] => 0 [topic_text_hash] => 65fd9d8ac97a45311458756583048948 [bands_id] => 5 ) ) )

11 комментариев

avatar
if ($aRow=$this->oDb->select($sql,$sBandsName)) 
{                                 
return  Engine::GetEntity('PluginBands_ModuleBlogbands_EntityBlogbands',$aRow);         
}
Не есть правильно… вы получаете МАССИВ строк из базы и пытаетесь сделать из него одну сущность. Надо делать цикл по массиву строк и делать из каждой строки сужность, запихивать в массив и возвращать. Думаю найдете пример :)
avatar
Спсибо, вот тут она и проблема
avatar
Пожалуйста :)
avatar
а если сделать массив и потом передавать уже в функцию сущности номер записи? это нормально? вроде тож самое получится
avatar
Как-то не совсем понятно…
avatar
Вот массив
PluginBands_ModuleBlogbands_EntityBlogbands Object ( [_aData:protected] => Array ( [0] => Array ( [topic_id] => 1 [blog_id] => 3 [user_id] => 1 [topic_type] => topic [topic_title] => Мэр Костромы Александр Кудрявцев досрочно сложил полномочия [topic_tags] => Кострома,депутат,повительство [topic_date_add] => 2011-02-16 09:41:09 [topic_date_edit] => 2011-02-16 21:31:33 [topic_user_ip] => 46.42.30.223 [topic_publish] => 1 [topic_publish_draft] => 1 [topic_publish_index] => 1 [topic_rating] => 1.000 [topic_count_vote] => 1 [topic_count_read] => 48 [topic_count_comment] => 5 [topic_cut_text] => [topic_forbid_comment] => 0 [topic_text_hash] => 4adad33714c3a90f89d375ff148be29a [bands_id] => 5 ) [1] => Array ( [topic_id] => 2 [blog_id] => 3 [user_id] => 1 [topic_type] => topic [topic_title] => Костромичи стали лучшими в экстремальных прыжках на велосипедах [topic_tags] => Кострома,победа,прыжки [topic_date_add] => 2011-02-16 09:41:59 [topic_date_edit] => 2011-02-16 21:31:06 [topic_user_ip] => 46.42.30.223 [topic_publish] => 1 [topic_publish_draft] => 1 [topic_publish_index] => 1 [topic_rating] => 0.000 [topic_count_vote] => 0 [topic_count_read] => 15 [topic_count_comment] => 0 [topic_cut_text] => [topic_forbid_comment] => 0 [topic_text_hash] => 65fd9d8ac97a45311458756583048948 [bands_id] => 5 ) ) )


В цикле

{foreach from=$aTopics key=i item=oTopic}   
         {$oTopic->getTopicTitle($i)}
{/foreach}


 public function getTopicTitle($i) {
        return $this->_aData[$i]['topic_title'];
    }
avatar
Сущность это не массив… Это объект. Одна сущность — один объект. Никаких массивов, кроме массивов сущностей. Все манипуляции происходят с сущностями/объектами.
avatar
И еще вопрос. Сущности ведь просто для удобства.Это самое можно реализовать и в цикле шаблона.
Или я заблуждаюсь. Если нет, то что лучше и чем?
avatar
Прямо и не знаю, что сказать… Для начала почитайте trac.lsdev.ru/livestreet/wiki/DeveloperDoc/Module
avatar
да
avatar
sql запрос можно написать тоже прямо из экшна…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.