그래서 기본적으로 데이터베이스에서 카테고리 목록을 검색하여 $ data [ 'categories'] 변수에 저장합니다.CodeIgniter는 뷰 내의 컨트롤러에서 특정 데이터를 검색합니다.
보기에서 나는 단순히 foreach() 문을 사용하여이를 나열합니다. 여태까지는 그런대로 잘됐다. 하지만 일부 카테고리에는 하위 카테고리가 있습니다 (전부는 아님). 이제, 카테고리에 하위 카테고리가 있는지 여부를 표시하는 'is_direct'(하위 카테고리가 있거나 없음)라는 데이터베이스 행을 추가했습니다.
이제 해당 하위 범주가있는 경우 해당 하위 범주를 나열하고 싶습니다.
여기서 헤더 (카테고리 및 하위 카테고리가 나열 될 곳)를 표시하는 방법 (개인 정보는 신경 쓰지 않아도됩니다.)
private function show_header($template='default',$page_name='default')
{
// Get the categories.
$data['categories'] = $this->CI->ws_category->get_categories();
// Display the header.
$this->CI->load->view("templates/".$template."/template/header",$data);
}
이 메소드는 아래 get_categories() 메소드를 호출합니다 (간단한 활성 레코드).
public function get_categories()
{
// Prepare the SQL query.
$this->db->select('*');
$this->db->from(APP_PREFIX.'categories');
$this->db->order_by('name_clean');
// Execute the query.
$query = $this->db->get();
// Get the results from the query.
$result = $query->result_array();
// Return the array with data.
return $result;
}
보기 아래에서 하위 메뉴의 위치를 볼 수 있습니다.
<?php
// Loop through all the categories.
foreach ($categories as $item):
?>
<li class='nav_link <?php ($item['is_direct'] == '1' ? 'nav_subcats' : ''); ?>'>
<a href='<?php echo base_url().'category/'.$item['category_id'].'-'.$item['name_clean'].'.html';?>' class='nav_main_link'><?php echo $item['name']; ?></a>
<?php
// In case subcategories are present.
if ($item['is_direct'] != '1')
{
?>
<div class='nav_submenu'>
<ul>
<li><a href='#' class='nav_sub_link'>submenu item</a></li>
</ul>
</div>
<?php
}
?>
</li>
<?php
// End the loop.
endforeach;
?>
누군가 나를 도울 수 있습니까? 감사합니다.
나는 그런 식으로 가고 있었지만 하위 카테고리에 문제가 발생했습니다. 이것은 사소한 비틀기와 완벽하게 작동합니다. 도움 주셔서 대단히 감사합니다. – Roel
비슷한 논리를 찾고있었습니다. 조건에 사소한 변화와 함께 나는 그것을 얻었다. 고맙습니다. @Roel and birderic –