2015-12-16 1 views
1

Comment utiliser une requête personnalisée dans un modèle utilisant le framework yii2? J'essaie mais des erreurs se produisent. Je suis un débutant dans le cadre Yii2.Comment utiliser une requête personnalisée dans le modèle yii2

Voici mon modèle de connexion:

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

Quelles erreurs se produisent? – Pavlin

Répondre

2

Essayez avec ActiveQuery:

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

utilisant des requêtes personnalisées:

public function getUser($id) 
{ 

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

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

    return $return->AHPName; 
} 
2

findOne()

Renvoie une seule instance de modèle d'enregistrement active par une clé primaire ou un tableau de valeurs de colonne .

$data = User::findOne(['userType' => 'AHP', 'userid' => $id]); 

Ce trouvera l'utilisateur dont user type is AHP et dont userid is $id.

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

vous pouvez essayer cette technique pour écrire une requête personnalisée dans 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(); 
    ?> 

une autre pour ce faire

User::find()->where('userType = :type and userid = :id', 
      ['type'=>AHP, 'id' => $id])->one();