将Yii1代码转换为Yii2

时间:2016-10-17 07:49:45

标签: yii yii2

我是Yii框架中的新手,我正在尝试将Yii1代码转换为Yii2。

我知道Yii2中没有CDbCriteria类,例如,对于以下Yii1代码:

$criOrder = new CDbCriteria();            
$criOrder->order = 'CRI_PresentationOrder';
$criModels = Criteria::model()->findAll($criOrder); 

我已经制作了Yii2声明:

$criModels = Criteria::find()->orderBy('CRI_PresentationOrder')->all();

但我在试图找到正确的方法来转换这个问题时遇到了一些问题:

$crvCriteria = new CDbCriteria();
$crvCriteria->with = array('aCRCRV', 'aCRCRV.cRVCRI');
$crvCriteria->together = true;
$crvCriteria->condition = 'ACR_APP_Id = :appId';
$crvCriteria->params = array(':appId'=>$id);
$crvCriteria->order = 'cRVCRI.CRI_PresentationOrder';
$crvModels = ApplicantCriteriaValue::model()->findAll($crvCriteria);  

特别是关于'with','together'和'params'属性。

任何想法/建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

假设您的ApplicantCriteriaValue表有一个名为ApplicantCriteriaValue的模型,那么

$criModels = ApplicantCriteriaValue::find()
    ->join('INNER JOIN', 'tbl_criteria_value',
            'tbl_criteria_value.ACV_CRV_Id =ApplicantCriteriaValue.CRV_Id')  
    ->join('INNER JOIN', 'tbl_criteria',
            'tbl_criteria.CRV_CRI_Id =ApplicantCriteriaValue.CRV_Id')     
  ->orderBy('CRI_PresentationOrder')->all();