如何在模型yii2框架中使用自定义查询

如何在模型yii2框架中使用自定义查询,yii2,Yii2,如何在使用yii2框架的模型中使用自定义查询?我正在尝试,但出现了错误 我是Yii2框架的初学者 以下是我的登录模式: public function getUser($id) { $return = User::findBySQL("Select * from User where userType = 'AHP' and userid = '$id';"); return($return['AHPName']); } 尝试使用ActiveQuery: public func

如何在使用yii2框架的模型中使用自定义查询?我正在尝试,但出现了错误

我是Yii2框架的初学者

以下是我的登录模式:

public function getUser($id)
{
    $return = User::findBySQL("Select * from User where userType = 'AHP' and userid = '$id';");
    return($return['AHPName']);
}

尝试使用
ActiveQuery

public function getUser($id)
{
  $data = User::find()->where(['userType' => 'AHP', 'userid' => $id])->one();
  return $data['AHPName'];
}
使用自定义查询:

public function getUser($id)
{

     $sql = "Select * from User where userType = 'AHP' and userid = '.$id.'";

     $return = User::findBySQL($sql)->one();

     return $return->AHPName;
}

通过主键或 列值数组

这将找到
用户类型为AHP
用户id为$id
的用户

public function getUser($id)
{
  $data = User::findOne(['userType' => 'AHP', 'userid' => $id]);
  return $data['AHPName'];
}

您可以尝试使用这种技术在yii2中编写自定义查询

  <?php
    use yii\db\Query;

    $query  = new Query(); 
    $query->select(['*'])->from('user')
                          ->where('user.userType=:id',['id'=>'AHP'])
                          ->andWhere('user.userid=:no',['no'=>$id]);


     $command   = $query->createCommand();
     $result    = $command->queryAll(); 
    ?>
  <?php
    use yii\db\Query;

    $query  = new Query(); 
    $query->select(['*'])->from('user')
                          ->where('user.userType=:id',['id'=>'AHP'])
                          ->andWhere('user.userid=:no',['no'=>$id]);


     $command   = $query->createCommand();
     $result    = $command->queryAll(); 
    ?>
User::find()->where('userType = :type and userid = :id', 
            ['type'=>AHP, 'id' => $id])->one();