2015-12-16 81 views
1

如何在使用yii2框架的模型中使用自定义查询?我正在尝试但发生错误。如何在模型yii2框架中使用自定义查询

我是Yii2 Framework的初学者。

这里是我的登录模式:

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

发生什么错误? – Pavlin

回答

2

尝试ActiveQuery

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

使用自定义查询:

public function getUser($id) 
{ 

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

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

    return $return->AHPName; 
} 
2

findOne()

通过主键或 列值的数组返回单个活动记录模型实例。

$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']; 
} 
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(); 
相关问题