Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 Yii2 MongoDB查询不工作_Php_Mysql_Mongodb_Yii2 - Fatal编程技术网

Php Yii2 MongoDB查询不工作

Php Yii2 MongoDB查询不工作,php,mysql,mongodb,yii2,Php,Mysql,Mongodb,Yii2,我以前在数据库中使用MySQL,最近才开始使用MongoDB。我一直在将我的查询转换为MongoDB格式,但在转换过程中遇到了一个问题 我想获取特定用户的工资条id,其中工资条生成的日期在特定工资周期的开始日期和结束日期之间。以下是原始查询MySQL: public function getPayslipDetails() { $time = date_default_timezone_set('Asia/Manila'); $time = date('Y/m/d', tim

我以前在数据库中使用MySQL,最近才开始使用MongoDB。我一直在将我的查询转换为MongoDB格式,但在转换过程中遇到了一个问题

我想获取特定用户的工资条id,其中工资条生成的日期在特定工资周期的开始日期和结束日期之间。以下是原始查询MySQL:

public function getPayslipDetails()
{  
    $time = date_default_timezone_set('Asia/Manila');
    $time = date('Y/m/d', time());
    $session = Yii::$app->session; 

    return $this->hasOne(Payslip::className(), ['user_id' => 'user_id'])->where('date_generated BETWEEN :start_time AND :end_time', array(':start_time' => $session['start'], ':end_time' => $session['end'])); 
}

public function getPayslipID() 
{    
    return $this->payslipDetails ? $this->payslipDetails->payslip_id : '';
}
现在,这里是我对MongoDB的转换查询:

public function getPayslipDetails()
{  
    $time = date_default_timezone_set('Asia/Manila');
    $time = date('Y/m/d', time());
    $session = Yii::$app->session; 

    return $this->hasOne(Payslip::className(), ['user_id' => '_id'])->where(array('date_generated' =>  array('$in' => array($session['start'], $session['end']))));  
}

public function getPayslipID() 
{    
    return $this->payslipDetails ? $this->payslipDetails->_id : '';
}
请注意,返回语句是不同的。我想知道我的MongoDB查询是否正确。它也不会返回任何错误

非常感谢您的回复。

操作员选择字段值等于指定数组中任何值的文档。它并不等同于MySQLBETWEEN

使用和操作

public function getPayslipDetails()
{  
    $time = date_default_timezone_set('Asia/Manila');
    $time = date('Y/m/d', time());
    $session = Yii::$app->session; 

    return $this->hasOne(Payslip::className(), ['user_id' => '_id'])->where(array('date_generated' =>  array('$gte' => $session['start']), 'date_generated' =>  array('$lte' => $session['end'])));  
}

public function getPayslipID() 
{    
    return $this->payslipDetails ? $this->payslipDetails->_id : '';
}
我不确定php mongodb的语法,但我认为这应该会有所帮助。

我发现了这一点,您知道如何在视图中使用函数getPosts吗?