php - 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 的控制器并具有功能编辑功能。
解决方案
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 模式。将控制器放在子文件夹中的唯一结果是让生活变得更加复杂。
推荐阅读
- java - 使用 %n 作为新行
- crystal-reports - 如何从 Crystal Reports 中的现有组创建组总计
- css - 您可以更改 Material UI TextField 特定部分的文本颜色吗?
- javascript - 我无法弄清楚为什么我的 D3js 图表没有显示
- c++ - 基本多态性
- docker - 无法连接到 127.0.0.1 端口 80:连接被拒绝 ddev-router healthcheck 端点没有响应
- javascript - 使用 localStorage 保存 Google 地图和行车路线
- android - Android 模拟器 - 未调用 OkHttp(或 Retrofit)回调
- linux - 我将如何编写一个“if”命令来检查是否有多个参数?
- android-studio - 在 Android 上颤振火焰精灵复制而不是在 iPhone 上?