В CodeIgniter 1.73 я пытаюсь отображать книги по категориям. Итак, если у меня есть категория «Автомобили», я должен увидеть список книг в разделе «Автомобили». поэтому я попробовал для этого вложенный цикл foreach, но не смог заставить его работать.
class Book_model extends Model
{
function books_by_category()
{
$this->db->select('*');
$this->db->from('categories');
$this->db->join('books', 'books.category_id = categories.id');
$query = $this->db->get();
return $query->result();
}
}
затем в представлении:
foreach ($data as $category) {
if (sizeof($category['books'])) {
foreach ($category['books'] as $book) {
[*]$book->book_number anchor("book/chapters/$book->id", $book->book_title)
}
} else {
// show 'no books'
}
}
контроллер:
function index()
{
$data = array();
if ($query = $this->book_model->books_by_category()) {
$data['books_by_category'] = $query;
foreach ($query as $row) {
if (!isset($data[$row['id']])) {
$data[$row['id']] = $row;
$data[$row['id']]['books'] = array();
}
$data[$row['id']]['books'][] = $row;
}
$data['main_content'] = 'books_view';
$this->load->view('includes/template', $data);
}
}