【问题标题】:Use Yii CDbCriteria to get dates with a specific month使用 Yii CDbCriteria 获取特定月份的日期
【发布时间】:2015-05-15 16:03:10
【问题描述】:

您好,我想知道我们是否可以使用 CDbCriteria 根据特定月份的日期获取数据。假设我需要在 5 月创建的所有条目,我有一个列 paid_on,所以当我选择 May(05) 时,我需要获取所有以 05 作为月份的条目 xxxx-05-xx。我用 Yii create db 命令得到了这个

$monthno = date('m',strtotime($_POST['month']));
$sql     = "SELECT * FROM fee_track WHERE DATE_FORMAT(paid_on,'%m') = ".$monthno."";
$data    = Yii::app()->db->createCommand($sql)->queryAll();

我需要知道我是否可以对 CDbCriteria 做同样的事情。谢谢!

【问题讨论】:

    标签: php yii


    【解决方案1】:

    你可以像这样使用conditionCDbCriteria(),它应该适合你。

    $monthno = date('m',strtotime($_POST['month']));
    
    $criteria = new CDbCriteria();
    $criteria->select="*";
    $criteria->condition = "DATE_FORMAT(paid_on,'%m')=:monthno";
    $criteria->params = array(':monthno'=>$monthno);
    $modelResult= Yii::app()->db->commandBuilder->createFindCommand(fee_track,$criteria)->findAll();
    
    echo '<pre>';
    print_r($model);
    echo '</pre>';
    

    编辑:根据评论

    $modelResult= YourModel::model()-
     >findAll($criteria);
    

    【讨论】:

    • 嗨,谢谢它的工作,但 $modelresult 需要 Yii::app()->db... 我只是用了一个普通的 $model= MyModel::model()->findAll( $标准);
    • @Arun ,是 $model= MyModel::model()->findAll($criteria);也是不错的一个。祝你好运。
    【解决方案2】:

    尝试使用此代码

    $criteria = new CDbCriteria();
    $criteria->condition = "DATE_FORMAT(paid_on,'%m')=:monthno";
    $criteria->params = array(':monthno'=>'05');
    $model= YourModel::model()->findAll($criteria);
    

    我认为这会对你有所帮助:)

    【讨论】:

    • 您好,这很好,但是Being Sunny 下面发布的代码有所帮助。总之非常感谢!! :)
    猜你喜欢
    • 2017-01-19
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多