如何在使用yii2框架的模型中使用自定义查询?我正在尝试,但错误发生。
我是Yii2 Framework的初学者。
这是我的登录模式:
public function getUser($id)
{
$return = User::findBySQL("Select * from User where userType = 'AHP' and userid = '$id';");
return($return['AHPName']);
}
答案 0 :(得分:3)
尝试ActiveQuery
:
public function getUser($id)
{
$data = User::find()->where(['userType' => 'AHP', 'userid' => $id])->one();
return $data['AHPName'];
}
答案 1 :(得分:3)
<强> findOne() 强>
通过主键或a返回单个活动记录模型实例 列值数组。
$data = User::findOne(['userType' => 'AHP', 'userid' => $id]);
这将找到user type is AHP
及其userid is $id
的用户。
public function getUser($id)
{
$data = User::findOne(['userType' => 'AHP', 'userid' => $id]);
return $data['AHPName'];
}
答案 2 :(得分:1)
使用自定义查询:
public function getUser($id)
{
$sql = "Select * from User where userType = 'AHP' and userid = '.$id.'";
$return = User::findBySQL($sql)->one();
return $return->AHPName;
}
答案 3 :(得分:0)
您可以尝试使用此技术在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();
?>
另一个要做到这一点
User::find()->where('userType = :type and userid = :id',
['type'=>AHP, 'id' => $id])->one();