riconoscere il primo, il terzo o l'ultimo record!

Salve ho un MODEL_figlio che viene gestito N volte all’interno di un’altro MODEL_Padre, vorrei cambiargli qualche caratteristica (poche altrimenti avrei fatto un’altro model :) )

Domanda, come posso riconoscere se tra gli N models_figli ho davanti il primo … il terzo, il quarto o l’ultimo ? Evitando noiose query inline possibilmente, magari Yii possiede qualche magic method !! ;D

thanks

se intendi che vuoi sapere il nome della classe usata per una variabile allora devi usare il metodo [font="verdana, arial, helvetica, sans-serif"][size="4"]get_class[/size][/font][font="verdana, arial, helvetica, sans-serif"][size="4"] ([/size][/font][font="verdana, arial, helvetica, sans-serif"][size="4"])[/size][/font]

[font="verdana, arial, helvetica, sans-serif"][size="4"]http://php.net/manua...n.get-class.php

[/size][/font]

Ciao proid no non intendevo quello, parlo di models, mi spiego meglio:

Ho un model "Libro" e un model "Foglio" (in un libro ci sono N fogli)

Come posso avere l’ordinamento dei fogli del libro ?

Cioè capire se ho davanti il primo foglio piuttosto che il terzo o l’ultimo e così via!

Non sò se si può creare un metodo riutilizzabile piuttosto che scrivere ogni volta una query.

tnx ;)

Immagino che usare un array Pagine sia fuori luogo, del tipo

Libro->pagine[N]=Foglio

Libro->pagine[N+1]=Foglio2 ect

mmm… nel mio caso non ho il model "pagine" ho solo (LIBRO) & (FOGLI)

Mi servirebbe una situazione tipo:


if($modelLibro->$modelFoglio->e_primo {}

if($modelLibro->$modelFoglio->e_ultimo {}

elseif //(tutti gli altri casi) ....



grazie cmq ;)

Però potresti aggiungere alla classe del tuo model LIBRO un


public var $pagine=array();

In qusto modo hai sempre a diposizione un contenitore in cui inserire i vari fogli.

Come aggiungi i fogli ad un libro, e come sai l’ordine dei fogli ?

Potresti avere un field nella tabela fogli che sarebbe l’ordine dei fogli.

In realtà i fogli non vengon messi in un libro alla volta, ma 2 fogli in un libroA, poi un foglio nel libroB, poi altri 4 fogli nel libroC, dunque la primaryKey non mi aiuta in questo caso.

Ciao ma ho già fogli come matrice non me ne serve un’altra :blink: ho la relations

LibroModel:




public function relations()

	{

		return array(

		

			'fogli' => array(self::HAS_MANY, 'Tbl_Foglio' , 'libro_fk'),

		);

	}

che mi torna tutti i fogli presenti in quel libro.

Devo ciclare col foreach ? O posso ricavarmi la posizione del record tramite array() ?

tnx :)

Quindi il tuo problema sarebbe solo nel dire a Yii come ordinarli allinterno della relazione, giusto?

Io credo che Yii li ottenga generalmente in base alla pk,

forse potressti aggiungere un campo order per foglio e dire a Yii di estrarli in base alla pk e ordinarli per order.

Giusto?

ecco ciò che dice qui Yii:


class User extends CActiveRecord

{

    public function relations()

    {

        return array(

            'posts'=>array(self::HAS_MANY, 'Post', 'author_id',

                            'order'=>'posts.create_time DESC',

                            'with'=>'categories'),

            'profile'=>array(self::HAS_ONE, 'Profile', 'owner_id'),

        );

    }

}

In qualche esempio ho trovato al posto di posts.create ??.create, vedi tu in quale modo funziona meglio