在您设置路线的bootstrap.php
中,我很难让它们工作。前一阵子我读了一些文件,但似乎再也找不到解释它们的原因了。下面是我的一个例子
Route::set('products', 'products/(type)', array('type' => '.+'))
->defaults(array(
'controller' => 'articles',
'action' => 'view_product',
'page' => 'shock-absorbers',
));
我想这意味着像
products/something
这样的请求会加载articles
控制器和action_view_product()
方法。但我不能让它工作。有人能给我解释一下它们是如何工作的吗?所有的方法参数是什么?
最佳答案
我想那意味着一个请求
像产品一样
物品管理员和
操作查看产品控制器。但我
不能让它工作。
你把黑体部分弄错了。它将实际加载物品控制器的操作视图产品方法:
class Controller_Articles extends Controller {
public function action_view_product() {
$params = $this->request->param();
// if the uri is `products/something' then $params['type'] == 'something'
}
}
编辑:
天啊,天啊,我怎么没注意到!!!!
真正的问题在于你的路线模式!应该是带尖括号的
products/(<type>)
。这些将提示kohana您希望“type”是参数名,而不是文本。