codeigniter只从url获取单个数字参数

时间:2013-06-21 18:45:29

标签: php codeigniter url-routing

我有一个我无法弄清楚的问题。

我正在从我的数据库中检索公司记录。 有些公司拥有单位数ID,而其他公司拥有2位或3位数ID。

如果我使用网址查看公司:domain.com/company/view/3, 它会列出公司。 当我向该公司添加联系人时,该网址如下所示:domain.com/contact/add/3 一切正常。

然而,对于有2位或3位数字的公司,会发生什么:

如果我使用网址查看公司:domain.com/company/view/54 它会列出公司就好了。 当我向该公司添加联系人时,URL如下所示:domain.com/contact/add/5。 所以,它取消了最后一位数字(4)。

如果你需要它,这是我的控制器:

public function add($id) {

            if (isset($_POST["add"]))
        {
            $this->Equipment_model->add($id);
            redirect('company/view/'.$id);
        }
    $data['locations']  = $this->Equipment_model->get_locations($id);
    $data['data'] = $id;
    $this->load->view('templates/header');
    $this->load->view('equipment/add', $data);
    $this->load->view('templates/footer');

}

知道造成这种情况的原因是什么?

编辑:htaccess

AddHandler application/x-httpd-php53 .php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond $1 !^(index\.php|css|font|img|js|themes)
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

我的路线看起来像这样:

$route['default_controller'] = "Home";
$route['logout'] = "auth/logout";
$route['login'] = "auth/login";
//$route['(:any)'] = '';
$route['404_override'] = 'error/error_404';

更新2: 简化的事情我做了一个快速的视频,并上传到抽搐,所以你可以看到我在说什么。 http://www.twitch.tv/bnelsonjax/b/420079504

1 个答案:

答案 0 :(得分:0)

听起来您可能会为您的联系人而不是您的公司获取ID。你检查过那个逻辑吗?