0

Webショップのメニューを生成しようとしています。そのためのメソッドを作成しました。

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

}

誰かがこの関数をスリムな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
        ));
    });

また、データベース要求が何も返さない場合、誰かがパリが返すものを正しい方向に向けることができますか?

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 に答える