Я сегодня наткнулся на логическую проблему с помощью Codeigniter. Через 4 часа я подумал, что лучше спросить здесь.Codeigniter: нужно вызвать функцию контроллера из окна
Моего проекта на главной странице портала:
- Лучших сообщения (атрибуты: название, логотип, Отрывок)
- Top Комментариев для каждого сообщения (атрибуты: имя-участника Аватар)
Моя проблема заключается в получении лучших комментариев для каждого сообщения.
Если я не использую код воспламенителя это то, как я буду это делать:
<?php
foreach($posts as $post) {
echo 'Post Title: '.$post['title'].'<br/>';
$top_commenters = $this->get_top_commenters($post['id']);
foreach($top_commenters as $commenter) {
echo '<img src="'. $commenter['avatar'] .'"/><br/>';
}
}
?>
Я думаю, вы заметили, что я передаю каждый Пост идентификатор функции, чтобы получить ее топ комментаторов. Однако в CodeIgniter я не могу вызвать контроллер из представления.
Одним из последних решений, которые я бы использовал, является Ajax. Но я надеюсь, что мне поможет.
Спасибо заранее!
UPDATE: в соответствии с просьбой, вот моя функция модели и функции контроллера:
//Model Function
function get_popular_posts() {
$row = $this->db->query('
SELECT * FROM posts
INNER JOIN popular_posts ON posts.id = popular_posts.pid
ORDER BY rank DESC LIMIT 6
');
return $row->result_array();
}
//Model Function
function get_top_commenters($post_id){
$row = $this->db->query('
SELECT *
FROM users
WHERE username
IN (
SELECT username
FROM comments WHERE pid = '. $post_id .')
ORDER BY likes DESC LIMIT 6
');
return $row->result_array();
}
Можете ли вы показать мне свой контроллер и функцию модели, которую вы используете для получения сообщений? – bottleboot
Просьба пояснить, почему http://stackoverflow.com/questions/9986520/how-to-call-codeigniter-controller-function-from-view?rq=1 и http://stackoverflow.com/questions/16366130/calling- a-controller-function-from-a-view-in-codeigniter? rq = 1 и http://stackoverflow.com/questions/11682604/how-to-call-function-of-controller-in-view-using- codeignator не отвечает на ваш вопрос. – Gordon
Я знаю почему! но мне нужна помощь для работы. – Sobiaholic