从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/1http://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 中的参数

无法从 codeigniter 中的 URL 中删除“Index.php”

CodeIgniter:如何获取Controller,Action,URL信息

从 codeigniter 中的视图发送动态电子邮件附件