我正在做 cakephp 项目。我已使用 .htaccess 文件从 URL 中删除了 index.php,现在我想从 URL 中删除 View 名称并添加其他两个不同的参数。假设我选择国家和城市,那么这两个参数应该出现在选择它们时的 URL 中。
我面临的问题是 cakephp 需要
www.example.com/Controllername/viewname
但是我的要求是这样的
www.example.com/Controllername/param1/param2
如果我通过这种方式,它会查找 param1 作为 Controller ,将 param2 作为 View 。
最初应该是这样的:
www.example.com/Controllername/
最佳答案
在您的APP/routes.php
中:
// www.example/com/Controllername
Router::connect('/Controllername',
array('controller'=>'Controllername', 'action'=>'index'));
// www.example.com/Controllername/param1/param2
Router::connect('/Controllername/:param1/:param2',
array('controller'=>'Controllername', 'action'=>'index'),
array('pass' => array('param1', 'param2')));
和你的 Controller :
// set to null/a value to prevent missing parameter errors
public function index($param1=null, $param2=null) {
//echo $param1 . ' and ' . $param2;
}
生成链接时:
array('controller'=>'Controllername', 'action'=>'index', 'param1'=>'foo', 'param2'=>'bar');
顺序很重要。将 paramX
更改为您想要的任何内容,即 country
和 town
请注意,这不包括:controllername/param1
- 两者都必须出现在本示例中。
还有其他方法可以实现这一目标。
关于php - 如何从 cakephp 的 url 中删除操作名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14069601/