slim-php函数菜单grom数据库


slim php function menu grom database

我正在尝试为网店生成菜单。我已经为它写了一个方法。

Slim在第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中的模板吗?

这是我试图将返回的$menu变量传递给的get请求。

$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
        ));
    });

另外,如果数据库请求没有返回任何结果,有人能给我指出paris返回的正确方向吗?

我创建菜单的方法:

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
        ));
    });