除非您以某种方式更改了.htaccess 文件中的路由,否则您很可能缺少 URL 中的一部分。
正确的 URL 很可能应该是(如果您没有更改任何内容)
www.mysite.com/index.php?route=information/adminpanel&some_id=<?php echo $id ?>
请注意,controller/action 部分应作为查询字符串的一部分发送到变量 route 下,并且 ID 变量也必须是查询字符串的一部分,您命名它 然后从控制器中的$_GET['younameit'] 获取变量。
OpenCart 中的路由是通过 SEO URL 完成的,例如
www.mysite.com/category-slug/sub-category-slug/product-slug
甚至
www.mysite.com/product-slug
虽然这些正在被mod_rewrite 规则翻译成
www.mysite.com/index.php?_route_=<SEO_URL_PART>
或通过您需要指定控制器的非 SEO URL
www.mysite.com/index.php?route=common/home
调用CommonHomeController 的默认index() 操作,甚至通过指定要调用的具体操作,如
www.mysite.com/index.php?route=checkout/cart/add
调用CheckoutCartController 的add() 操作的位置。因为这个调用一个 URL 像
www.mysite.com/index.php?route=information/adminpanel/123
会导致尝试在InformationAdminpanelController 中调用很可能不存在的操作123()。如果你调用 URL,而不是这个
www.mysite.com/index.php?route=information/adminpanel&some_id=123
它将调用index() 操作,而您可以像这样获得some_id 值:
if (!empty($this->request->get['some_id'])) {
$some_id = $this->request->get['some_id'];
} else {
$some_id = 0;
}
if ($some_id) {
// ...
}
再次重申 - 上述所有内容都是默认的 OpenCart 路由行为,并且也将适用于您的安装,除非您更改了 .htaccess 文件中定义的 mod_rewrite 规则。