我正在尝试为网店生成菜单。我已经为它写了一个方法。
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
));
});