Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在CodeIgniter和MongoDB中传递URI变量_Php_Codeigniter_Mongodb_Mongodb Php - Fatal编程技术网

Php 在CodeIgniter和MongoDB中传递URI变量

Php 在CodeIgniter和MongoDB中传递URI变量,php,codeigniter,mongodb,mongodb-php,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>"; } 公共函数年龄($var=null) {

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

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

    echo "<pre>";
    print_r($data);
    echo "</pre>";
}
公共函数年龄($var=null)
{
$data=$this->mongo\u db
->其中('age',$var)
->获取(“用户”);
回声“;
打印(数据);
回声“;
}
当我导航到它时,它应该返回所有年龄为25岁的文档,但是它不会返回任何数据

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

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

       echo "<pre>";
       print_r($data);
       echo "</pre>";
    }
}
公共函数年龄($var=null)
{
$data=$this->mongo\u db
->其中('年龄',25岁)
->获取(“用户”);
回声“;
打印(数据);
回声“;
}
这可能很简单,但我是codeigniter的新手,我就是看不出哪里出了问题

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

试试这个:

$data = $this->mongo_db
    ->where('age', (int) $var)
    ->get('users');
公共函数年龄($var=false)
{
如果($var){
$data=$this->mongo\u db
->其中('age',$var)
->获取(“用户”);
回声“;
打印(数据);
回声“;
}
}

您是否配置了任何路线?在配置中放入类似的内容


我能看到两者之间的唯一区别是
$var
是字符串而不是整数。我现在无法测试这个,但我怀疑在将变量传递到Alex的库之前,需要将其类型转换为整数


很难说是怎么回事。从你发布的代码来看,似乎没有任何问题。你能发布
var_dump(func_get_args())的输出吗?输出为
数组(1){[0]=>字符串(2)“20”}
。如果我做一个简单的echo$var,它将打印变量。。。似乎是mongo_db查询忽略了该变量。在这种情况下,您可能需要说明您使用的是哪个库。据我所知,CI有不止一个MongoDB库。你最好还是咨询一下图书馆的作者。说得对!我应该马上说的。我使用的是Can-you-post输出的
var\u-dump($this->mongo\u-db->where)?当然,在您调用
where()
方法之后。感谢您的响应,不幸的是,这似乎也没有什么效果。MongoDb查询似乎不允许将变量传递给它。路由工作正常。我可以用一个简单的'echo$var'打印变量,只是mongo_db查询没有使用变量。
$route['controller/age/(:num)'] = "controller/age/$1";
$data = $this->mongo_db
    ->where('age', (int) $var)
    ->get('users');