我创建了这样的自定义网址:
Router::connect('/subjects.details', array(
'plugin' => 'subjects',
'controller' => 'subjects',
'action' => 'details'
));
然而,该动作/视图需要一个参数。
所以当我去localhost/foo/subjects.details/12
之类的链接时,它会让我错过控制器错误。
缺少控制器
错误:找不到Subjects.detailsController。
错误:在文件中创建下面的Subjects.detailsController类: 应用程序/控制器/ Subjects.detailsController.php
如何为此网址添加ID参数?
答案 0 :(得分:1)
您必须在网址和操作中定义参数:
Router::connect('/subjects.details/:id', array(
'plugin' => 'subjects',
'controller' => 'subjects',
'action' => 'details'
));
答案 1 :(得分:0)
Lasers回答了另一个错误。它基本上将新密钥'id' => '1'
添加到$this->params
数组中,而不是添加到$this->params
的{{1}}密钥数组中。通过将其更改为此可行:
'passed'
答案 2 :(得分:0)
这是一个可行的解决方案。您必须通过参数,然后它将开始工作。这是方法-
Router::connect('/subjects.details/:id', [
'plugin' => 'subjects',
'controller' => 'subjects',
'action' => 'details'
],
[
'pass' => ['id']
]
);
您的方法应如下所示-
public function details($id){
//....
}
我希望这会有所帮助。谢谢。