2012-02-24 49 views
1

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

我有这在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但它不是。我不知道为什么。

回答

5

是的Ko3路线是荒谬的。

尝试删除的$ id = NULL,因为K03将分配瓦尔作为参数:

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

看看是否有帮助。

+0

谢谢,我知道这种方法正在工作。但客户希望我使用标准kohana路由。 – 2012-02-27 09:19:37

+0

这是标准kohana路由。 URI处理可能就是你所想的。我只是说你不需要在控制器的参数中定义预期的参数。他们通过请求对象 - 一个无限可扩展的解决方案。 – 2012-02-27 21:00:17

1

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

由于zombor说:

他们只是不适合Kohana的是如何设计的。他们本来不应该被包含在3.0中。

此外,它不应该处理所有的路由与默认的。你应该定义尽可能多的,你需要的。

+0

谢谢。你帮了我很多。 – 2012-02-27 17:33:37