Я работаю над базовым приложением блога в Codeigniter 3.1.8 и Bootstrap 4.
Есть несколько таблиц, среди которых posts
и categories
, в которых хранятся категории сообщений.
Каждый пост относится к категории:
Названия категорий:
Я хочу отображать сообщения с названием категории, к которой относится каждое сообщение. Для этой цели в моей модели постов у меня есть текущий код:
public function get_posts($limit, $offset) {
$this->db->order_by('posts.id', 'DESC');
$this->db->join('categories', 'posts.cat_id = categories.id', 'inner');
$query = $this->db->get('posts', $limit, $offset);
return $query->result();
}
Код выше "переводит" в
`SELECT * FROM `posts` INNER JOIN `categories` ON `posts`.`cat_id` = `categories`.`id` ORDER BY `id` DESC LIMIT 12`
и, если я сделаю print_r($data['posts'])
, он неоднозначно возвращает название категории сообщения как [name] => Showbiz
.
Это заставляет меня использовать эту неоднозначную строку в представлении сообщений:
<p><?php echo $post->name; ?></p>
Я хочу использовать эту строку вместо:
<p><?php echo $post->post_category; ?></p>
Другими словами, я хочу это, но с синтаксисом Codeigniter 3:
`SELECT *, categories.`name` as post_category FROM `posts` INNER JOIN `categories` ON `posts`.`cat_id` = `categories`.`id` ORDER BY `id` DESC LIMIT 12`;
и все еще в состоянии использовать функцию ORM Codeigniter.
Примечание: в контроллере у меня есть:
$data['posts'] = $this->Posts_model->get_posts($config['limit'], $config['offset']);
Чего мне не хватает?