我可以在Kohana 3中使用一个路线定义吗?

时间:2010-12-13 05:00:00

标签: php routing kohana

这是我的一条路线......

Route::set('products', 'our-products(/<product>)')
->defaults(array(
    'controller' => 'products',
    'action'     => FALSE
)); 

访问/our-products,您可以访问产品索引(将调用Controller_Products::action_index())。

我希望路由按以下方式工作:添加可选产品时,应该调用另一种方法,即如果请求/our-products/product-a,而不是调用Controller_Products::action_index(),则调用类似{{{ 1}}。

我意识到我可以通过两条路线轻松完成这项工作,但我宁愿选择一条路线。

我还要检查Controller_Products::action_get('product-a')中的参数,并调用另一种方法,但这听起来很难看。

我也试过了action_index(),但得到了这个非常不寻常的错误...

  

致命错误:类声明可能不会嵌套在第3行的/home/user/public_html/~new/system/classes/date.php中

有可能做我想要的吗?什么是最好的方式?

由于

2 个答案:

答案 0 :(得分:0)

  1. 使用product方法检查action_get() param,如果为空,请致电action_index()(或其他)。
  2. 请阅读this topic,了解您的异常错误。

答案 1 :(得分:0)

Controller::before()方法中重载操作,如下所示:

if ($this->request->param('product'))
{
    $this->request->action = 'get';
}