Php 无脂肪框架中的站点导航控制器

Php 无脂肪框架中的站点导航控制器,php,model-view-controller,navigation,fat-free-framework,Php,Model View Controller,Navigation,Fat Free Framework,我试图创建一个单独的控制器来处理站点导航,这在整个站点中几乎是不变的,比如主导航、侧栏导航和可能的页脚导航 如果不专门为此创建一个路由,我想不出应该怎么做,我的假设是:如果导航控制器本身以及在我的站点上的任何位置都可以工作,这意味着我不能指定某种路由,因为除非我用其他方法调用它,否则它不会在每个页面上工作 路由 我目前的代码如下: class CategoryController extends Controller { public function navigation(){

我试图创建一个单独的控制器来处理站点导航,这在整个站点中几乎是不变的,比如主导航、侧栏导航和可能的页脚导航

如果不专门为此创建一个路由,我想不出应该怎么做,我的假设是:如果导航控制器本身以及在我的站点上的任何位置都可以工作,这意味着我不能指定某种路由,因为除非我用其他方法调用它,否则它不会在每个页面上工作

路由 我目前的代码如下:

class CategoryController extends Controller
{
    public function navigation(){
        $categories = new Categories($this->db);
        $cat = $categories->all();
        $this->f3->set('categories',$cat);
    }

    function CategorySlug(){
        $category_slug = $this->f3->get('PARAMS.category_slug');
        $categories = new Categories($this->db);
        $cat = $categories->getBySlug($category_slug);
        $header_location = $cat[0]['category_slug'];
        if($category_slug != $header_location && !empty($header_location)){
            header("HTTP/1.1 301 Moved Permanently");
            header("Location: $header_location");
        }else if(empty($header_location) || $cat[0]['category_id'] != $cat[0]['parent_category_id']){
            $this->f3->error(404);
        }else{
            $this->f3->set('category',$cat[0]);
        }
        $this->f3->set('view','mainCategory.html');
        $this->navigation();
        echo \Template::instance()->render('mainLayout.html');
    }
}
正如您从代码中看到的,第一种方法是我的站点导航,我需要在第二种方法中调用它,以便在分类页面上显示导航。我的主页也是如此,以下是我的代码:

class MainController extends Controller
{

    function render(){
        $classNav = new CategoryController();
        $classNav->navigation();
        $this->f3->set('view','mainHome.html');
        echo \Template::instance()->render('mainLayout.html');
    }
}

请提供任何帮助或指示,您可以在路由前将
方法放入控制器,根据。

此方法在类中任何其他路由处理程序之前调用,可用于准备站点所有其他部分所需的数据。

这可能会起作用,出于某种原因,我认为您只能将其用于会话和标头,也许我错了,谢谢
class MainController extends Controller
{

    function render(){
        $classNav = new CategoryController();
        $classNav->navigation();
        $this->f3->set('view','mainHome.html');
        echo \Template::instance()->render('mainLayout.html');
    }
}