【发布时间】:2015-07-10 06:54:45
【问题描述】:
好的。所以我通过在 routes.php 文件中添加这条规则来更改路由:
$route['tools/(:any)'] = "b/view/$1";
但是,当我访问http://mywebsite.com/tools/toolid 时,我收到以下错误:
遇到一个 PHP 错误
严重性:通知
消息:尝试获取非对象的属性
文件名:VIEWS/LISTING_PAGE.PHP
第 64 行
所以LISTING_PAGE.PHP文件第64行的代码是:
echo $categoryinfo->name;
LISTING_PAGE.PHP 是一个视图,由 B 类中的代码加载,具体是这一行:
$this->load->view("listing_page", $data);
现在,奇怪的是,如果我将 routes.php 中的路由规则更改为:
$route['tools/id/(:any)'] = "b/view/$1"; //I added an id 'section'
然后代码可以正常工作。
如果我访问http://mywebsite.com/b/view/toolid,该代码也可以完美运行。
因此,如果有多个“部分”(工具/id),那么代码可以完美运行,如果只有一个“部分”(工具/),那么就会出现非对象错误。
有谁知道是什么导致了这个问题?
【问题讨论】:
-
route.php中是否有多个tools/用于路由?如果是肯定的,而不是它对 codeigniter 的模棱两可的情况。
-
routes.php 中关于工具的规则只有一条
-
在您的控制器中,您从 url 获取 id 吗?而不是你用来获取 $categoryinfo 数据?
-
我认为,问题不在路线上。查看您如何将值设置为 $categoryinfo 以及如何将其显示。无论如何,它不是反对。例如,未定义变量。也许,由于某些情况,此行没有执行
-
id 只是 url 的任意“部分”,它路由到“真实”url,即 b/view
标签: php codeigniter routes