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
Page 1 of 1
Yii::app()->user->name extender
#2
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
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
#3
Posted 02 August 2011 - 09:55 AM
Diegovl, 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
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?
#4
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:
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;
}
}
#5
Posted 02 August 2011 - 10:26 AM
Diegovl, 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:
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 stamp
Schermata 08-2455776 alle 17.25.04.png (192.59K)
Number of downloads: 11
#6
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?
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?
#7
Posted 04 August 2011 - 02:40 AM
a volte può essere utile capire cosa si sta facendo, ma anche no
#8
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.
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.
Share this topic:
Page 1 of 1

Help












