从codeigniter中的url获取id
Posted
技术标签:
【中文标题】从codeigniter中的url获取id【英文标题】:Getting from an id from url in codeigniter 【发布时间】:2016-10-28 13:05:27 【问题描述】:我想调用一个函数 get
并从以下 url 获取 1 作为有问题的控制器的某个值
http://localhost/project/index.php/question/get/1
我正在尝试的路线配置是:
$route['question'] = 'question_controller';
$route['question/get'] = 'question_controller/get';
$route['question/(:num)'] = 'question_controller/get/$1';
控制器是:
<?php
/**
*
*/
class Question_controller extends CI_Controller
function __construct()
parent::__construct();
$this->load->helper(array('form'));
$this->load->library('form_validation');
$this->load->helper('url');
$this->load->helper('security');
$this->load->model('Questions');
function get($q_id = null)
echo $q_id;
?>
但是,上面的网址根本不起作用。我得到:
404 页面未找到
找不到您请求的页面。
请帮我解决问题。
【问题讨论】:
非常感谢,我在这里感觉自己像个傻瓜。另外,您能帮我从路由字段中删除$route['question/get'] = 'question_controller/get';
。
这样添加这些路由是没有用的。只需检查空或数字
关于get()
方法,这些路线看起来不错。但是我不确定$route['question'] = 'question_controller';
是否应该工作,因为那里没有显示index()
方法。您的应用程序是否使用了一些重定向/重写 apache 规则?
【参考方案1】:
这样添加那些路由是没有用的
试试这个
在路线中
$route['question'] = 'question_controller';
#$route['question/get'] = 'question_controller/get'; // remove
#$route['question/(:num)'] = 'question_controller/get/$1'; // remove
在控制器中
function get($q_id = null)
if (!empty($q_id ) && is_int($q_id ))
echo "$q_id with the Number";
else
echo "Its Empty or Its without Number";
因此,当您通过
http://localhost/project/index.php/question/get/1
或http://localhost/project/index.php/question/get
时,它将达到相同的功能。它只能达到有值或没有值
【讨论】:
不工作。我也试过这个方法,但没有奏效。我找不到控制器。 localhost/project/index.php/question 工作正常,但 localhost/project/index.php/question/get 不起作用。在从路由页面评论这两行之后,它显示了 404 错误。 哪些代码、控制器或路由?还有其他路线。 从您调用此ttp://localhost/project/index.php/question/
的位置添加您的问题
让我们continue this discussion in chat.以上是关于从codeigniter中的url获取id的主要内容,如果未能解决你的问题,请参考以下文章
如何从codeigniter中的url获取#jumper部分? [复制]
如何从 Codeigniter 中的视图获取控制器的 URL?
无法从 codeigniter 中的 URL 中删除“Index.php”