Yii Framework Forum: CSort Feld auf M:N Beziehung hinzufügen - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

CSort Feld auf M:N Beziehung hinzufügen Rate Topic: -----

#1 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 20 November 2009 - 12:28 PM

Hallo,
ich lasse mir in meinem Admin-Panel in der List() Methode alle Attribute aus meiner Relation ausgeben.
Anschließend übergebe die Kriterien an CSort

Code1
	$pages = new CPagination(xyz::model()->count($criteria));
	$pages->pageSize=self::PAGE_SIZE;
	$pages->applyLimit($criteria);

	$sort = new CSort('xyz');
	$sort->defaultOrder = 'id ASC';
	$sort->applyOrder($criteria);


Das funktioniert soweit, so gut.
Nun würde ich jedoch gerne eine weitere Spalte hinzufügen, in der die Anzahl der M:N Beziehungen angezeigt werden sollen. Diese soll aber auch sortierbar sein!

Bis jetzt löse ich das Problem (ohne das sortieren), auf eine sehr unschöne Weise

- Ich führe findAll aus und übergebe, das Ergebnis an meine View
$models=xyz::model()->findAll($criteria);


Anschließend lasse ich eine foreach-Schleife im View laufen, die dann die Attribute der Relation ausgeben.
Im View rufe mittels einer mir geschriebenen Methode, die Anzahl der M:N Beziehungen auf
<td><?php echo xyz::model()->countRelations( $id ); ?></td>



Diese countRelations müsste ich irgendwie vorher aufrufen und dem CSort übergeben, jedoch weiß ich nicht, wie ich das bewerkstelligen soll.
Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#2 User is offline   Dave 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 187
  • Joined: 09-October 08

Posted 23 November 2009 - 04:58 AM

Soweit ich weiss kann man an einen CSort irgendwelche Attribute hängen, es müssen nicht unbedingt die Attribute des Models sein. In der Criteria kannst du auch einen JOIN angeben und den ALIAS für den JOIN dabei festlegen. Im CSort gibst du dann sowas wie '<alias der gejointen Tabelle>.Id' als Attribute an.
0

#3 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 23 November 2009 - 07:52 AM

View PostDave, on 23 November 2009 - 04:58 AM, said:

Soweit ich weiss kann man an einen CSort irgendwelche Attribute hängen, es müssen nicht unbedingt die Attribute des Models sein. In der Criteria kannst du auch einen JOIN angeben und den ALIAS für den JOIN dabei festlegen. Im CSort gibst du dann sowas wie '<alias der gejointen Tabelle>.Id' als Attribute an.

Wie hänge ich ein Attribut an?
Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#4 User is offline   Dave 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 187
  • Joined: 09-October 08

Posted 23 November 2009 - 10:07 AM

$sort = new CSort();
$sort->attributes = array('<alias>.id')


http://www.yiiframew...tributes-detail
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users