2017-08-18 2 views
1
public function getResource() { 
return $this->hasOne(User::className(), ['id' => 'resource_id']); 
} 

cette fonction fonctionne très bien, mais quand j'utilise cetteNom de la classe dynamiquement hasOne ne fonctionne pas

public function getResource() { 
$model = ucfirst($this->resource_type); 
return $this->hasOne($model::className(), ['id' => 'resource_id']); 
} 

its me donner une erreur « classe « Utilisateur » introuvable ». Merci

+0

utilisez app \ modèles \ Utilisateur: ajoutez cette ligne en haut –

Répondre

2

vous devez utiliser le nom, y compris l'espace de noms si vous le spécifiez dynamiquement.

public function getResource() { 
    $model = "api\\models\\".ucfirst($this->resource_type); 
    return $this->hasOne($model::className(), ['id' => 'resource_id']); 
}