0

我试图为网上商店生成菜单。我已经为它写了一个方法。

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 变量传递给的获取请求。

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

如果数据库请求没有返回任何内容,也有人可以指出巴黎返回的正确方向吗?

4

1 回答 1

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
        ));
    });
于 2012-09-15T17:26:22.573 回答