Yii Framework Forum: Yii::app()->user->name extender - Yii Framework Forum

Jump to content

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

Yii::app()->user->name extender Rate Topic: -----

#1 User is offline   Duma 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 39
  • Joined: 13-March 11

Posted 02 August 2011 - 09:13 AM

Ho una domanda non mi è chiaro come estendere Yii::app()->user ovvero vorrei sapere ad esempio il cognome del disgraziato loggiato per stamparlo nel main.php
quindi mi è venuto in mente di espandere Yii::app()->user-> ma come? perché ho provato ma risultato... un sacco di errori
0

#2 User is offline   Diegovl 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 96
  • Joined: 27-February 11

Posted 02 August 2011 - 09:44 AM

Quello che vuoi fare tu è accedere a dei dati che non esistono in quel momento nella classe.

Perché?

Perché fare Yii::app()->user->proprietà non è altro che accedere ad una sessione persistente con i dati che tu scegli.

Mi spiego meglio: dopo il login voglio che il cognome di Tizio rimanga in sessione, e voglio richiamarlo sempre tramite Yii::app()->user->cognome.

Come fare?

Così:

$this->setState('cognome', $record->cognome);

dove $this fa riferimento alla classe CUserIdentity.

Trovi un esempio qui: http://www.yiiframew.../en/topics.auth
0

#3 User is offline   Duma 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 39
  • Joined: 13-March 11

Posted 02 August 2011 - 09:55 AM

View PostDiegovl, on 02 August 2011 - 09:44 AM, said:

Quello che vuoi fare tu è accedere a dei dati che non esistono in quel momento nella classe.

Perché?

Perché fare Yii::app()->user->proprietà non è altro che accedere ad una sessione persistente con i dati che tu scegli.

Mi spiego meglio: dopo il login voglio che il cognome di Tizio rimanga in sessione, e voglio richiamarlo sempre tramite Yii::app()->user->cognome.

Come fare?

Così:

$this->setState('cognome', $record->cognome);

dove $this fa riferimento alla classe CUserIdentity.

Trovi un esempio qui: http://www.yiiframew.../en/topics.auth



Non capisco $this->setState('cognome', $record->cognome); dove andrebbe messo?
0

#4 User is offline   Diegovl 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 96
  • Joined: 27-February 11

Posted 02 August 2011 - 09:59 AM

Ti consiglio di guardarti il link che ti ho postato, capirai tutto da li.

Ti ricopio l'esempio:

class UserIdentity extends CUserIdentity
{
    private $_id;
    public function authenticate()
    {
        $record=User::model()->findByAttributes(array('username'=>$this->username));
        if($record===null)
            $this->errorCode=self::ERROR_USERNAME_INVALID;
        else if($record->password!==md5($this->password))
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        else
        {
            $this->_id=$record->id;
            $this->setState('title', $record->title);
            $this->errorCode=self::ERROR_NONE;
        }
        return !$this->errorCode;
    }
 
    public function getId()
    {
        return $this->_id;
    }
}

0

#5 User is offline   Duma 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 39
  • Joined: 13-March 11

Posted 02 August 2011 - 10:26 AM

View PostDiegovl, on 02 August 2011 - 09:59 AM, said:

Ti consiglio di guardarti il link che ti ho postato, capirai tutto da li.

Ti ricopio l'esempio:

class UserIdentity extends CUserIdentity
{
    private $_id;
    public function authenticate()
    {
        $record=User::model()->findByAttributes(array('username'=>$this->username));
        if($record===null)
            $this->errorCode=self::ERROR_USERNAME_INVALID;
        else if($record->password!==md5($this->password))
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        else
        {
            $this->_id=$record->id;
            $this->setState('title', $record->title);
            $this->errorCode=self::ERROR_NONE;
        }
        return !$this->errorCode;
    }
 
    public function getId()
    {
        return $this->_id;
    }
}




Ho seguito la guida ma mi da un errore allego uno stampAttached File  Schermata 08-2455776 alle 17.25.04.png (192.59K)
Number of downloads: 11
0

#6 User is offline   Duma 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 39
  • Joined: 13-March 11

Posted 03 August 2011 - 04:48 AM

Ho creato all'interno del model/Profile.php una funzione
public function getCognome()
{
$prova= $this->Cognome;
return '$prova';
}


e la richiamo dal main.php con
echo Profile::getCognome();

ma mi dice
La proprietà "UserController"."Cognome" non è definita.
come faccio quindi ad estrarre il cognome e a visualizzarmelo nel main?
0

#7 User is offline   markux 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 106
  • Joined: 26-November 10
  • Location:Grosseto

Posted 04 August 2011 - 02:40 AM

a volte può essere utile capire cosa si sta facendo, ma anche no
0

#8 User is offline   zaccaria 

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

Posted 04 August 2011 - 03:59 AM

Devi capire cosa sono gli oggetti che hai in mano quando programmi.

Per avere una panoramica su cosa sono e cosa fanno gli oggetti del framework. leggi questo articolo.

$this rappresenta l'oggetto attuale, in un controller o in una view e' il controller attuale, in un model e' l'istanza attuale del model.

Se vuoi aggiungere una proprieta' a Yii::app()->user segui questo tutorial.
1

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