我是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'属性。
任何想法/建议都将受到高度赞赏。
答案 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();