【问题标题】:Fat Free framework dynamic routing does not workFat Free 框架动态路由不起作用
【发布时间】:2017-12-16 22:40:58
【问题描述】:

我正在尝试从 URL 获取变量以传递给控制器​​

网址如下所示http://example.org/MyCategoryhttp://example.org/MyCategory-1

我的数据库包含包含category_slug 列的所有类别的表

路线是GET /@category_slug = MainController->CategorySlug

我的主控制器有应该处理这个问题的方法,它应该从 Categories 模型中调用方法 getBySlug()

主控制器

function CategorySlug($category_slug){
    $categories = new Categories($this->db);
    $cat = $categories->getBySlug($category_slug);

    $this->f3->set('categories',$cat);
    echo \Template::instance()->render('index.html');
}

类别模型

public function getBySlug($category_slug)
{
    $this->load(array('category_slug=?', $category_slug));
    return $this->query;
}

从上面的代码可以看出,我传递了变量$category_slug,但是有一个错误

【问题讨论】:

    标签: php url-routing fat-free-framework dynamic-routing


    【解决方案1】:

    @AlexB,你遇到了什么错误?

    但是,您需要先从 URL 中获取变量,然后再将其传递给您的方法;

    $category_slug = $this->f3->get('PARAMS.category_slug')
    

    【讨论】:

    • 我已将它直接添加到我的控制器中并且它有效,但不确定它是否是正确的方法?
    • 是的。您唯一的错误是期望CategorySlug() 直接接收$category_slug。它实际上接收 1) 框架实例 2) 路由参数:CategorySlug($f3,$params)。见fatfreeframework.com/3.6/routing-engine#RoutesandTokens
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2015-06-23
    • 1970-01-01
    相关资源
    最近更新 更多