Werte aus Zwischentabelle werden nicht angezeigt

Hallo,

ich habe eine M:N Beziehung. In der Zwischentabelle befinden sich jedoch auch noch Spalten die jedoch nicht angezeigt werden.

Wie kann ich darauf zugreifen?

cars

id

name

owner

id

name

cars_owner

cars_id

owner_id

statistic <<<<< dieser Wert wird nicht angezeigt!!!


public function relations()

{

	return array(

		'translations'	=> array(self::MANY_MANY, 'owner', 'cars_owner( cars_id, owner_id )',

			'together'	=> true,

			'joinType'	=> 'INNER JOIN',

		),




thx!

Dazu gibts noch keine "offizielle" Lösung, aber wir haben ein Ticket dazu und es gibt mehrere Topics, die sich mit Workarounds befassen:

http://code.google.c.../detail?id=1117

http://www.yiiframew…th-mant-to-many

So hab ich das mal gelöst:

http://www.yiiframew…th-mant-to-many

Eine andere Variante wäre noch, ein AR für die Verknüpfungstabelle anzulegen und dann eine zweite Relation in Cars einzurichten (das führt aber zu einer weiteren SQL-Abfrage). Mit dem ‘index’-Feature kannst du die Ergebnisse nach der owner_id indizieren. Das ermöglicht einfacheren Zugriff auf die einzelnen Records, wenn du eine owner_id gegeben hast:


'carsowner'=>array(self::HAS_MANY,'CarOwner','cars_id','index'=>'owner_id')




// sofern ich dich richtig verstehe und 'translations' der Name für deine relation auf 'owner' ist:

$x=Cars::model()->with('translations','carsowner')->findByPk($id);

foreach($x->translations as $owner) 

{

    echo $owner->name;

    echo $x->carsowner[$owner->id]->statistic;

}

Nicht getestet, müsste aber grob so funktionieren.

danke für die Antwort.

Ich habe mir sowas leider schon gedacht das ich eine zweite Abfrage ausführen muss.

Was ärgerlich ist, da man durch den M:N Join eigentlich schon die Daten aus der Verknüpfungstabelle hat

Richtig. Aber schau auch mal die erste Lösung an. Leider war der Link falsch, ich meinte das hier:

http://www.yiiframework.com/forum/index.php?/topic/8011-many-many-how-to-select-some-fields-from-the-link-table

Im Endeffekt verzichtest du damit auf das MANY_MANY Feature und baust dir einfach deinen eigenen Getter für die verknüpften Objekte.

ok, das sieht auch interessant aus.

danke für die Lösung.