在CodeIgniter和MongoDB中传递URI变量

时间:2012-05-04 13:09:47

标签: php codeigniter mongodb mongodb-php

我在CodeIgniter中的控制器中有一个函数,如下所示:

public function age($var = null) 
{
    $data = $this->mongo_db
        ->where('age', $var)
        ->get('users');

    echo "<pre>";
    print_r($data);
    echo "</pre>";
}

当我导航到http://www.siteurl.com/controller/age/25时,它应该带回年龄为25岁的所有文件,但它不会返回任何数据。

如果我将查询修改为以下,它可以正常工作......

public function age($var = null) 
{
    $data = $this->mongo_db
        ->where('age', 25)
        ->get('users');

    echo "<pre>";
    print_r($data);
    echo "</pre>";
}

这可能非常简单,但我是codeigniter的新手,我只是看不出有什么问题!

任何帮助将不胜感激。提前谢谢!

3 个答案:

答案 0 :(得分:3)

我可以在两者之间看到的唯一区别是$var是字符串而不是整数。我现在无法对此进行测试,但我怀疑在将变量传递给Alex的库之前需要将变量强制转换为整数。

$data = $this->mongo_db
    ->where('age', (int) $var)
    ->get('users');

答案 1 :(得分:0)

试试这个:

public function age($var = false) 
{
    if ($var) {
       $data = $this->mongo_db
           ->where('age', $var)
           ->get('users');

       echo "<pre>";
       print_r($data);
       echo "</pre>";
    }
}

答案 2 :(得分:0)

你配置了什么路线?把这样的东西放在配置

$route['controller/age/(:num)'] = "controller/age/$1";