【问题标题】:ID parameter in Kohana 3 routing is NULLKohana 3 路由中的 ID 参数为 NULL
【发布时间】:2012-02-24 17:53:45
【问题描述】:

我在 Kohana 3 路由中定义了一个规则,但 ID 参数没有传递给该方法。

我在 bootstrap.php 文件中有这个:

Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
    'controller' => 'home',
    'action'     => 'index',
));

和控制器

public function action_home($id=NULL)
{
    echo $id;
}

但在以下链接示例中,ID 通常为 NULL:

http://example.com/index/123

ID 应该是123,但不是。我不知道为什么。

【问题讨论】:

    标签: php routing kohana-3 bootstrapping


    【解决方案1】:

    是的,Ko3 路线很荒谬。

    尝试删除 $id=null ,因为 K03 会将变量分配为参数:

    public function action_home()
    {
        echo $this->request->param('id');
    }
    

    看看有没有帮助。

    【讨论】:

    • 谢谢,我知道这种方法有效。但客户希望我使用标准的 kohana 路由。
    • 这是标准的 kohana 路由。 URI 处理可能是您所想的。我要说的是,您不需要在控制器的参数中定义预期的参数。它们通过请求对象传递 - 一种无限扩展的解决方案。
    【解决方案2】:

    他们已从 Kohana 中删除,请参阅:http://dev.kohanaframework.org/issues/4357

    正如 zombor 所说:

    它们只是不适合 Kohana 的设计方式。它们本来就不应该包含在 3.0 中。

    此外,它不应该使用默认路由处理所有路由。您应该根据需要定义任意数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      相关资源
      最近更新 更多