2012-09-15 19 views
0

我試圖生成一個網上商店的菜單。我已經爲它寫了一個方法。苗條的PHP功能菜單格羅姆數據庫

斯利姆說:「上線53未定義的變量我已經打上*

類菜單{

function generate_menu() { 
    $menu = 'ul'; 
    $catergory = Model::factory('category')->find_many(); 

    ***foreach ($category as $item) {*** 
     $menu .= '<li>'; 
     $menu .= '<a href = "' . $item->link . '">' . $item->title . '</a>'; 
     $menu .= '</li>'; 

     $count = Model::factory('sub_category')->where('category_title', $item->title)->count(); 
     if ($count >= 0) { 
      $sub_catergory = Model::factory('sub_category')->where('category_title', $item->title)->find_many(); 
      $menu .= '<ul>'; 
      foreach ($sub_catergory as $sub_catergory) { 
       $menu .= '<li>'; 
       $menu .= '<a href = "' . $sub_category->link . '">' . $sub_category->title . '</a>'; 
       $menu .= '</li>'; 
      } 
      $menu .= '</ul>'; 
     } 
    } 
    $menu .= '</ul>'; 
    return $menu; 
} 

}行

有人能告訴我如何把這個函數傳遞到slim php中的模板?

這是獲取請求,我試圖通過返回$菜單變量可以。

$app->get('/', function() use ($app) { 
     $site_info = Model::factory('Site_info')->where('id', '1')->find_one(); 

     $app->render('front_page.php', array(
      'site_name' => $site_info->site_name, 
      'site_slogan' => $site_info->site_slogan, 
      'domain' => $site_info->domain 
     )); 
    }); 

如果數據庫請求不返回任何內容,也可以有人指向我的方向是巴黎返回什麼?

+1

你真的不該」在循環中執行數據庫查詢。 – ThiefMaster

+0

我已經解決了!我做了一些非常愚蠢的拼寫錯誤,菜單是現在生成的。 – Dany

+0

好的盜賊大師。我剛開始學習Php。什麼是更好的選擇? – Dany

回答

1

我創建菜單的方法:

Class Menu { 

function generate_menu() { 
    $menu = '<ul>'; 
    $category = Model::factory('category')->find_many(); 

    foreach ($category as $item) { 
     $menu .= '<li>'; 
     $menu .= '<a href = "' . $item->link . '">' . $item->title . '</a>'; 
     $menu .= '</li>'; 

     $count = Model::factory('sub_category')->where('category_title', $item->title)->count(); 
     if ($count >= 0) { 
      $sub_category = Model::factory('sub_category')->where('category_title', $item->title)->find_many(); 
      $menu .= '<ul>'; 
      foreach ($sub_category as $value) { 
       $menu .= '<li>'; 
       $menu .= '<a href = "' . $value->link . '">' . $value->title . '</a>'; 
       $menu .= '</li>'; 
      } 
      $menu .= '</ul>'; 
     } 
    } 
    $menu .= '</ul>'; 
    return $menu; 
} 

}

後,我分配的方法輸出到一個變量,並傳遞給模板:

$app->get('/', function() use ($app) { 
     $site_info = Model::factory('Site_info')->where('id', '1')->find_one(); 

     $category_menu = Menu::generate_menu(); 
     $app->render('front_page.php', array(
      'site_name' => $site_info->site_name, 
      'site_slogan' => $site_info->site_slogan, 
      'domain' => $site_info->domain, 
      'menu' => $category_menu 
     )); 
    });