1

我在 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 的新手,我只是看不出出了什么问题!

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

4

3 回答 3

3

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

$data = $this->mongo_db
    ->where('age', (int) $var)
    ->get('users');
于 2012-05-04T14:26:03.570 回答
0

试试这个:

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

       echo "<pre>";
       print_r($data);
       echo "</pre>";
    }
}
于 2012-05-04T13:22:37.720 回答
0

你有没有配置任何路线?在配置中放这样的东西

$route['controller/age/(:num)'] = "controller/age/$1";
于 2012-05-04T13:28:33.843 回答