[ERLEDIGT] - Nicht nachvollziehbare CDbException

Ich verstehe nicht warum er die Spalte nicht kennt.

Fehlermeldung


CDbException

Description


CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'drivers.id' in 'where clause'




$x = drivers::model()->tableSchema->getColumnNames();


Liefert mir [0] => id und [1] => baseform

Mein Aufruf


	public function driversCars( $baseform )

	{

		return Drivers::model()->with(array('cars'))->find('drivers.id=?', array( $baseform ) );		

	}

Heißt die Tabelle in der Datenbank ‘drivers’?

Eigentlich sollte es auch wie folgt klappen:




Drivers::model()->with('cars')->find('id=?', array( $baseform ));



Was ist baseform? Evtl. wäre findByPk() einfacher…

Habe den Fehler soweit isoliert. Der Fehler lag in der relations-Methode, wie warum weshalb ist mir noch nicht klar.

Tabellenname darfst du nicht direkt angeben, da sie im query anders bezeichnet werden. Wenn das AR zb bei einem join “drivers as t1” macht, kannst du in diesem SELECT nicht mehr ‘drivers’ verwenden.

Für eine Spalte aus der Stammtabelle kannst du einfach den Spaltennamen benutzen, für die relation benutzt du einen alias oder überlässt yii die tabellenbezeichnung in dem du ??.<spaltenname> angibst.