How to correct wrong query

Hi guys,

in my searchModel, i implemented following methods





public function rules() {

	return [

            [['id', 'id_e_kontakt', 'id_kontakt_verwendungszweck', 'id_laenderkennung', 'angelegt_von', 'aktualisiert_von'],'integer'],

            [['vorwahl', 'telefonnummer', 'zuletzt_deaktiviert_am', 'angelegt_am', 'aktualisiert_am'], 'safe'],

            [['standard', 'aktiv', 'optimistic_lock'], 'boolean'],

        ];

    }

public function search($params, $id) {

        /*

          Hier müssen Codeänderungen für organisationen vorgenommen werden,da diese nicht über den FK id_person verfügen

 		*/

        $query = KontaktTelefon::find()

                ->join('LEFT JOIN', 'e_kontakt', 'e_kontakt.id=kontakt_telefon.id_e_kontakt')

                ->where(['id_person' => $id]);


        $dataProvider = new ActiveDataProvider([

            'query' => $query,

        ]);

.

.



Searching for PrimaryKey of each Record fails by following error:





Integrity constraint violation – yii\db\IntegrityException

[SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous

[The SQL being executed was: SELECT COUNT(*) FROM `kontakt_telefon` LEFT JOIN `e_kontakt` ON

e_kontakt.id=kontakt_telefon.id_e_kontakt WHERE (`id_person`='7') AND (`id`='2')

Error Info: Array

    [0] => 23000

    [1] => 1052

    [2] => Column 'id' in where clause is ambiguous

Caused by: PDOException

SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous

in E:\xampp\htdocs\yii2_perswitch\vendor\yiisoft\yii2\db\Command.php at line 1067



query will be formed by framework. I have no idea,where it is. $id in searchModel is ForeignKey,given by link, id,which 'causes error is PrimaryKey,which is named in both models id. So,I am not surprised,getting this error, but I don’t know, how to avoid it

If I try to define id not ambigiously, I will get error like this:





Unknown Property – yii\base\UnknownPropertyException

Getting unknown property: frontend\modules\kontakt\models\KontaktTelefonSearch::kontakt_telefon.id



Any ideas,how to remedy this sql error?




...

andFilterWhere(['kontakt_telefon.id' => $this->id])

...



Perfect. Now, id isn’t ambigious any more.

Thx a lot!

U helped me,once more again…

This thread can be closed as succesfully solved