hasOne(User::className...)}"."/> hasOne(User::className...)}".">

Maison >cadre php >YII >Que dois-je faire si yii2 hasone signale une erreur ?

Que dois-je faire si yii2 hasone signale une erreur ?

藏色散人
藏色散人original
2020-07-20 10:46:572092parcourir

La solution à l'erreur yii2 hasone : ouvrez d'abord le fichier correspondant selon la documentation ; puis modifiez l'instruction en "function getUser(){return $this->hasOne(User::className... )}" c'est Can.

Que dois-je faire si yii2 hasone signale une erreur ?

yii2 hasOne erreur de fonctionnement de la relation

Problème spécifique :

J'ai 2 tables : Utilisateurs et Favoris :

users table
favorite

Maintenant, j'ai une relation dans le modèle "Favoris" comme indiqué ci-dessous

public function getUser()
{
    return $this->hasOne(User::className(), ['id', 'user_favorited']);
}

Dans le contrôleur, j'ai trouvé la liste des favoris des utilisateurs

public function actionGetList()
{
    $favorite = Favorite::find()->where([
              'user_favoriting' => Yii::$app->user->id
          ])->all();
    foreach ($favorite as $key => $item) {
        # code...
        echo "<pre class="brush:php;toolbar:false">"; var_dump($item->user); echo "<br/>"; die(&#39;123&#39;);
    }
    return $favorite;
}

Mais lorsque je demande cette opération, j'obtiens une erreur

Column not found: 1054 Unknown column &#39;0&#39; in &#39;where clause&#39;\nThe SQL being executed was: SELECT * FROM `users` WHERE (`0`, `1`) IN ((12, 80))",

S'il vous plaît, aidez-moi !

Recommandé : "Tutoriel yii"

Solution :

Selon la documentation, vous devez utiliser :

public function getUser()
{
    return $this->hasOne(User::className(), [&#39;id&#39; => &#39;user_favorited&#39;]);
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn