小编典典

如何使用findAll()在yii中编写查询

sql

我有以下sql查询,如何使用yii编写查询findAll()

我没有使用CDbCriteria,暂时正在避免使用它。

使用三个表,用户,类别和job_profile。

SELECT * 
FROM job_profile
INNER JOIN user ON user.id = job_profile.user_id
INNER JOIN category ON category.id = job_profile.category_id
WHERE category_id = 1
  AND experience = 2
  AND key_skills LIKE  '%php%'

我已经编写了以下查询,但是我不知道如何包括join:

 $results = SearchEmployee::model()->findAll("category_id=:category AND key_skills like 
:skill AND experience=:experience", array(
            'category'=>$category,
            'skill'=>'%'.$skills.'%',
            'experience'=>$experience
            ));

阅读 177

收藏
2021-04-14

共1个答案

小编典典

$model = JobProfile::model()->with(‘userrelationname’,’categoryrelationname’)->findAll(array(“condition”=>”t.category_id =1 and t.experience =2 and t.key_skills LIKE ‘%php%’“));

您可以在JobProfile模型中找到关系名称

关系示例

JobProfile模型文件中将包含源代码,例如

 public function relations(){
    return array(
      'user' => array (self::BELONGS_TO, 'User', 'id' ),
    )
 }

这是“用户”是关系名称…

然后在您的控制器示例中;

foreach($model as $m){
    echo $m['user_id']; // in your job_profile table
    echo $m->user->id;  // in your user table
}
2021-04-14