【发布时间】:2010-12-13 05:00:00
【问题描述】:
这是我的一条路线...
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(),它会调用类似Controller_Products::action_get('product-a')的方法。
我意识到我可以通过两条路线轻松做到这一点,但我更愿意使用一条路线。
我也想过检查action_index() 中的参数,并调用另一个方法,但这听起来很难看。
我也试过__call(),但得到了这个非常不寻常的错误......
致命错误:类声明可能未嵌套在第 3 行的 /home/user/public_html/~new/system/classes/date.php 中
有可能做我想做的事吗?最好的方法是什么?
谢谢
【问题讨论】:
-
你为什么要在一条路线上这样做?路由的发明是为了将不同的请求分离到不同的操作。
-
@zerkms 他们似乎足够相关,可以进入一条路线。
-
@alex:不同意。如果您有不同的
defaults取决于 url 值 - 它们似乎与一个无关(这是我个人的观点)。 -
@zerkms
<controller>/<action>怎么样? :P -
@zerkms 这是处理许多动作和控制器的通用路由。我希望我可以建立一个这样的通用路线(但不诉诸
our-products/get/product-a)。