Yii Framework Forum: Fetch rows - Yii Framework Forum

Jump to content

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

Fetch rows Rate Topic: -----

#1 User is offline   sotty 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 15-May 11

Posted 03 July 2011 - 06:07 AM

Salve ragazzi...ho una domanda veloce e anche abbastanza banale. Tempo fa ero riuscito a farlo, ora non trovo più il file e ho troppo mal di testa per mettermi a pensare... Praticamente io devo fare in modo di visualizzare in una vista il menù di un ristorante. E quindi per un menù, visualizzare le categorie di questo menù e per ogni cateogoria i vari "items" ad essa associata.
Praticamente avrei bisogno di due cicli foreach uno dentro l'altro. Come faccio a farlo? Se avete bisogno di altre info chiedete pure...
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 03 July 2011 - 06:18 AM

Ti sei risposto da solo: due foreach uno dentro l'altro.

Se non ricordo male la corretta sintassi potrebbe essere foreach (Categoria::model->find(array('chiave'=>'valore))) as $item) foreach (SottoCat::model->find ... )
I risultati delle query sono array quindi puoi iterare in quel modo. Ecco un esempio:

$select = array();
foreach (AuthAssignment::model()->findAll('userid=' . ($model->id)) as $item)
foreach (AuthItem::model()->findAll("name='{$item->itemname}'") as $item)
$select[] = $item->id;


In questo caso ho usato un foreach di foreach per raccogliere tutti i permessi di un utente utilizzando RBAC (se lo hai mai usato riconoscerai il nome delle tabelle).
1

#3 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 03 July 2011 - 06:20 AM

Ah! Fai attenzione: io ho usato sempre $item ma solo perchè ho una sola istruzione da eseguire quindi dell'$item generato da AuthAssignment non mi interesso. Se mi servisse, il secondo foreach lo sovrascriverebbe. Bisognerebbe, più correttamente, chiamarli $itemAuthAssignment ed $itemAuthItem. Ho sbagliato a non dare un significato semantico al nome delle variabili. Spero non crei confusione.
0

#4 User is offline   sotty 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 15-May 11

Posted 03 July 2011 - 06:24 AM

infatti..grazie. Il dubbio era proprio sulla sintassi...Nell'esempio che mi hai dato nell'array select si salvano gli id dei vari item giusto? ecco...se io volessi stamparli direttamente senza salvarli in nessuna variabile mi basterebbe semplicemente fare un echo?
0

#5 User is offline   Nic Anji 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 26-August 10
  • Location:Italy > Venice > Chioggia

Posted 03 July 2011 - 11:12 AM

View Postsotty, on 03 July 2011 - 06:24 AM, said:

infatti..grazie. Il dubbio era proprio sulla sintassi...Nell'esempio che mi hai dato nell'array select si salvano gli id dei vari item giusto? ecco...se io volessi stamparli direttamente senza salvarli in nessuna variabile mi basterebbe semplicemente fare un echo?


si si
echo $item->id;
o qualsiasi altra proprietà di $item
0

#6 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 06 July 2011 - 01:45 AM

Puoi anche usare le relations per caricare i sottomenu, se per esempio in categorie hai una proprieta' sottocategoria
<?php foreach (Categorie::model()->findAll(array('with'=>array('sottoCategorie'))) as $i=>$categoria):?>
   <?php foreach ($categoria->sottoCategorie as $j=>$sottocategoria):?>
       <?php echo $sottocategoria->nome?>
   <?php endforeach;?>

<?php endforeach;?>


In questa maniera ti ritrovi a fare esattamente 1 query.
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