首页 > 解决方案 > Codeigniter 在 get from view 中传递参数导致 404 错误

问题描述

我正在尝试将参数传递给我的函数,例如:

<a href="mydomain.com/admin/controller/functionxyz/parameter"> edit</a>

在我的控制器中

function  functionxyz($parameter=null){}

如果我在没有任何参数的情况下传递它会到达函数,这会导致 404 错误。我试过路由和 uri 段都没有工作。

更新:当我在 url 中使用 get 时,它工作得非常好,例如:

<a href="mydomain.com/admin/controller/functionxyz?parameter=abc"> edit</a>

只有当我尝试将函数作为参数传递时,我才会登陆 404 页面。

更新:所以我的路线是这样的:

$route['cmcp/company/edit'] = 'cmcp/company/edit';
$route['cmcp/company/edit/(:any)'] = 'cmcp/company/edit/$1';

其中 cmcp 是我的管理控制器,它扩展了一个名为 company 的控制器并具有功能编辑功能。

标签: phpurl-rewritingurl-routingcodeigniter-3

解决方案


Home给定一个在目录/application/controllers/admin/中命名的控制器,它具有public function xyz($param = null) ...最好的方法是使用 URI 的重新映射。但我们实际上必须重新映射URI。考虑到这一点,这些路线应该可以工作。(请注意,$route键和值确实不同。)

$route['home'] = 'admin/home/xyz';
$route['home/(.+)'] = 'admin/home/xyz/$1';

所以链接会像这样

<a href="example.com/home/parameter"> edit</a>

IMO,以上是完全不必要的并发症。除非你是个控制狂或拥有数百个控制器,否则很少有充分的理由来破坏 CI 的/class/function/id/URI 模式。将控制器放在子文件夹中的唯一结果是让生活变得更加复杂。


推荐阅读