Я только что начал свое первое приложение CI. У меня есть представление, которое отображает некоторые сообщения. У каждого сообщения может быть несколько комментариев, и я хочу показать общее количество комментариев рядом с каждым сообщением.CodeIgniter: help с этим вопросом
До сих пор весь мой вызов db был в моем контроллере (это будет изменение).
function index(){
$data['query'] = $this->db->get('posts');
$this->load->view('blog_view', $data);
}
На мой взгляд:
<?php foreach($query->result() as $row):
<div class="post-box">
<p><?php echo $row->body; ?><small> added by <?php echo $row->username; ?> on <?php echo date ('d/m/Y',strtotime($row->created)); ?> <a href="<?php echo base_url(); ?>blog/comments/<?php echo $row->id; ?>"><img src="<?php echo base_url(); ?>images/comments_icon.png" /> 0</a></small></p>
</div>
<?php endforeach; ?>
Я хочу, чтобы получить общее количество комментариев, где comment.post_id = идентификатор текущего пластинки. и отобразите его рядом с пиктограммой комментариев.
Любая помощь с этим наиболее высоко,
Билли
UPDATE
Контроллер:
function index(){
//load the model
$this->load->model('City_model');
//call the model method
$data->posts = $this->City_model->get_posts();
$this->load->view('blog_view', $data);
}
Модель (city_model.php):
<?php
class City_model extends Model{
function get_posts($id = NULL) {
//define optional id for single post
//if an id was supplied
if ($id != NULL) {
$this->db->where('id',$id);
}
// execute query
$query = $this->db->get('posts');
//make sure results exist
if($query->num_rows() > 0) {
$posts = $query->result();
} else {
return FALSE;
}
//create array for appended (with comments) posts
$appended_posts_array = array();
//loop through each post
foreach ($posts as $post) {
//get comments associated with the post
$this->db->where('post_id', $post->id)
$comments = $this->db->get('comments');
//if there are comments, add the comments to the post object
if($comments->num_rows() > 0) {
$post->comments = $comments;
}
else {
$post->comments = array();
}
//rebuild the returned posts with their comments
$appended_posts_array[] = $post;
}
//if post id supplied, only return the single post object
if ($id != NULL) {
return $appended_registration_array[0];
}
else {
return $appended_registration_array;
}
}
}
@ jondavidjohn: Я удалил свой первоначальный ответ, поскольку ваш более всеобъемлющий и более в «духе» MVC, так сказать. Я согласен с тем, что OP должен определенно выбрать этот тип решения над «быстрым решением».«+1 за то, что потратили время, чтобы проиллюстрировать правильный подход. –
Это похоже на то, что я хотел. Я дам это! – iamjonesy
Я пробовал свой код. Похоже, он должен работать нормально. Все имена таблиц верны. Я назвал модель правильной. Добавил класс к модели, назовите модель правильно, но я получаю ошибку сервера при загрузке модуля. Имя модуля: city_model.php, вызывающий его с помощью модели $ this-> load-> ('City_model'); – iamjonesy