Yii Framework Forum: [Yii 1] Aiuto Con Criteria E Relations - Yii Framework Forum

Jump to content

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

[Yii 1] Aiuto Con Criteria E Relations Rate Topic: -----

#1 User is offline   Giannix 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 241
  • Joined: 20-February 14

Posted 20 August 2014 - 10:43 AM

Salve a tutti, ho 4 tabelle:
user con campi:
id - agenzia_id - nome - cognome - username - password - session - data_registrazione


cap con campi:
id - cap_id - cap_dest - agenzia_id - agenzia_nome_completo - status - comune_id - comune - provincia_id - provincia

agenzia con campi:
id - user_id - cap_id - comune_agenzia  - provincia_agenzia - codice - nome_completo - operatori - date - ditta nome - cognome

rs con campi:
id - tracking_esterno - nome_mitt - cognome_mitt - ubicazione_mitt - via_mitt - civico_mitt - cap_mitt - comune_mitt - provincia_mitt - stato_mitt - nome_dest - cognome_dest - ubicazione_dest - via_dest - civico_dest - cap_dest - comune_dest - provincia_dest - stato_dest - informazioni - agenzia_mitt - agenzia_dest - peso - prezzo - diritti - iva - totale - esito - tipoconsegna - vettore - date - time - prodotto

Vorrei che nella vista index di "Rs" l' utente loggato (collegato alla sua agenzia tramite la relazione User Agenzia) potesse vedere solo le "Rs" (Racc Semplici) che appartengono alla sua Agenzia.
Relazione Agenzia User
'users'=>array(self::BELONGS_TO, 'User', 'user_id'),

Relazione User Agenzia
'agenzie'=>array(self::BELONGS_TO, 'Agenzia', 'agenzia_id'),

Ogni Agenzia può essere gestita da vari utenti. Ogni Agenzia ha vari comuni in gestione tramite la relazione Agenzia Cap.
'cap'=>array(self::HAS_MANY, 'Cap', 'agenzia_id'),

Ora sono intrippato e non riesco a capire come fare per far si che ogni utente loggato possa vedere solo le Rs dirette verso la sua agenzia. Non capisco se mi mancano campi nel databse per poter legare le tabelle. Ho provato mille relazioni e un po di criteria ma non riesco a venirne fuori.
Qualcuno può aiutarmi a risolvere con relazioni e criteri di comparazione dati, per poter ottenere ciò che mi serve? Perfavore!!!
0

#2 User is offline   paskuale 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 388
  • Joined: 30-December 11
  • Location:Italy, Bari

Posted 29 August 2014 - 02:59 AM

Guardando velocemente il tuo caso, l'unica cosa che mi viene (al volo) da consigliarti è di precisare nel terzo parametro le due chiavi della relazione:

es. per le agenzie dell'user,dentro il model User (relations):


'Agenzie' => array(self::BELONGS_TO, 'Agenzia', array('chiave_1'=>'chiave_2'))


molte volte (nn sò il perchè) non è sufficiente passare una chiave...

ciao
0

#3 User is offline   Giannix 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 241
  • Joined: 20-February 14

Posted 29 August 2014 - 02:04 PM

Ciao pasquale e grazie per il tuo consiglio.
Però poi nella vista come gestisco il criteria?
Nel controller Rs alla actionIndex che criteria inserisco?
Mi puoi fare un esempio se hai tempo? Senno grazie lo stesso :)
Intanto dopo cena faccio come dici e inizio a provare con i criteria.
0

#4 User is offline   Giannix 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 241
  • Joined: 20-February 14

Posted 03 September 2014 - 05:44 AM

Rieccomi qui!!!
Ho provato a inserire una seconda chiave ma mi da errori:
L'active record "User" ha una configurazione non valida per la relazione "agenzie". Devono essere specificati il tipo di relazione, l'active record relazionato e la chiave esterna.

Vedo che va a cercare nell' action Login:
13      * Authenticates a user.
14      * @return boolean whether authentication succeeds.
15      */
16     public function authenticate()
17     {
18         $user=User::model()->find('LOWER(username)=?',array(strtolower($this->username))); 
NELLA RIGA 18 MI EVIDENZIA L ERR0RE.!!!

19         if($user===null)
20             $this->errorCode=self::ERROR_USERNAME_INVALID;
21         else if(!$user->validatePassword($this->password))
22             $this->errorCode=self::ERROR_PASSWORD_INVALID;
23         else
..................

Uff non riesco a cavarne piede. Non è possibile fare delle query sql con join per confrontare che l' agenzia_id (prezo dalla tabella user) dell' utente loggato, corrisponda all' agenzia Id della tabella Rs facendo un controllo in tutti i record di questa tabella e mostrando solo quelli che hanno l' agenzia_id dell' utente attualmente loggato? Oddio forse sto dicendo fesserie...e chiedo scusa. Ma mi serve trovare una soluzione a questo problema e inizio a darci di matto!!!!! :angry:
0

#5 User is offline   paskuale 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 388
  • Joined: 30-December 11
  • Location:Italy, Bari

Posted 04 September 2014 - 01:01 AM

Incolla qui la relation *Agenzia* che hai nel model User, così vediamo un pò, scusa il ritardo nel risp !! Ciao
0

#6 User is offline   Giannix 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 241
  • Joined: 20-February 14

Posted 04 September 2014 - 06:26 AM

Ciao paskuale e grazie della risposta.
Mi dava errore perchè ho sbagliato a inserire il codice......non usavo l' array ma inserivo solo
'campo1'=>'campo2'

Quindi ho corretto l' errore, ma ancora non riesco a far visulizzare le raccomandata come voglio. Praticamente ogni utente può vedere qualsiasi raccomandata, quando invece dovrebbe vedere solo le raccomandate appartenenti alla sua agenzia. Prima o poi mi rinchiuderanno in qualche casa di cura ;D cosi darò sfogo alla mia pazzia ;D

Questa e la relation che ho attualmente nel Model User
'agenzie'=>array(self::BELONGS_TO, 'Agenzia', 'agenzia_id'),

Ho provato a inserire
'agenzie'=>array(self::BELONGS_TO, 'Agenzia', array('agenzia_id'=>'operatori')),

ma non cambia nulla.
Mi sono infilato in un tunnel e ora ho il cervello molto molto molto incasinato!!! :D
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