girub
(Giuseppe Rubino)
April 15, 2011, 9:08am
1
Ciao a tutti ragazzi,
im ero promesso qualche settimana fa di mettermi sotto con lo studio di yii ma il lavoro ultimamente mi schiavizza…
ho seguito il primo tutorial e qualche altra prova… leggendo lo ammentto poche pagine di manuale…
Ora volevo installare un’estensione per la gestione degli utenti e volevo chiedervi quale consigliate tra le tante che ci sono? e dove posso trovare un tutorial su come installare e configurare un’estensione
ciao a tutti e grazie
Giuseppe
nickcv
(N Puddu)
April 15, 2011, 9:17am
2
dipende da cosa vuoi fare o.o
gestione dei permessi o solo registrazione degli utenti?
yii-user è un ottima estensione per la semplice gestione degli utenti…
Io fino a questo momento ho usato il sistema RBAC di yii, ma di fatto nè molto grosso. Si possono gestire sia ruoli che singole task. Di fatto, però, credo sia difficile amministrare un sito per singole task quindi spero tu possa trovare qualche cosa di più snello.
Oltre ad yii-user che ci consiglia nickcv, ho sentito parlare bene di RIGHTS. Purtroppo non ho provato nessuna delle due, ma mi riprometto di studiarle a breve.
zaccaria
(Matteo Falsitta)
April 18, 2011, 5:57am
4
Io mi sono sempre trovato bene l’rbac di Yii, senza aggiungere niente
girub
(Giuseppe Rubino)
April 18, 2011, 12:44pm
5
non sono proprio un fulmine a rispondere sul forum perdon
cmq ho provato a installare yii-user, ma senza successo…
ho scompattato l’estensione ed ho messo la cartella scompattata dentro protected della mia appricazione di prova…
ho aggiule righe di codice come da guida… ho anche indicato il nuovo db dove ho messo le nuove tabella di yii-user ma ancora nulla…
di default ho la pagina login e se provo ad inserire admin admin mi da questo errore e la stessa cosa se vado sulla pagina Register:
CDbException
The table "{{users}}" for active record class "RegistrationForm" cannot be found in the database.
C:\www\first_app\yii\framework\db\ar\CActiveRecord.php(2237)
2225 private $_model;
2226
2227 /**
2228 * Constructor.
2229 * @param CActiveRecord $model the model instance
2230 */
2231 public function __construct($model)
2232 {
2233 $this->_model=$model;
2234
2235 $tableName=$model->tableName();
2236 if(($table=$model->getDbConnection()->getSchema()->getTable($tableName))===null)
2237 throw new CDbException(Yii::t('yii','The table "{table}" for active record class "{class}" cannot be found in the database.',
2238 array('{class}'=>get_class($model),'{table}'=>$tableName)));
2239 if($table->primaryKey===null)
2240 $table->primaryKey=$model->primaryKey();
2241 $this->tableSchema=$table;
2242 $this->columns=$table->columns;
2243
2244 foreach($table->columns as $name=>$column)
2245 {
2246 if(!$column->isPrimaryKey && $column->defaultValue!==null)
2247 $this->attributeDefaults[$name]=$column->defaultValue;
2248 }
2249
Stack Trace
#0
+ C:\www\first_app\yii\framework\db\ar\CActiveRecord.php(371): CActiveRecordMetaData->__construct(RegistrationForm)
#1
+ C:\www\first_app\yii\framework\db\ar\CActiveRecord.php(386): CActiveRecord::model("RegistrationForm")
#2
+ C:\www\first_app\yii\framework\db\ar\CActiveRecord.php(62): CActiveRecord->getMetaData()
#3
– C:\www\first_app\yii\demos\ciaomondo\protected\modules\user\controllers\RegistrationController.php(25): CActiveRecord->__construct()
20 }
21 /**
22 * Registration user
23 */
24 public function actionRegistration() {
25 $model = new RegistrationForm;
26 $profile=new Profile;
27 $profile->regMode = true;
28
29 // ajax validator
30 if(isset($_POST['ajax']) && $_POST['ajax']==='registration-form')
#4
+ C:\www\first_app\yii\framework\web\actions\CInlineAction.php(50): RegistrationController->actionRegistration()
#5
+ C:\www\first_app\yii\framework\web\CController.php(300): CInlineAction->runWithParams(array("r" => "user/registration"))
#6
+ C:\www\first_app\yii\framework\web\CController.php(278): CController->runAction(CInlineAction)
#7
+ C:\www\first_app\yii\framework\web\CController.php(257): CController->runActionWithFilters(CInlineAction, array())
#8
+ C:\www\first_app\yii\framework\web\CWebApplication.php(328): CController->run("")
#9
+ C:\www\first_app\yii\framework\web\CWebApplication.php(121): CWebApplication->runController("user/registration")
#10
+ C:\www\first_app\yii\framework\base\CApplication.php(155): CWebApplication->processRequest()
#11
– C:\www\first_app\yii\demos\ciaomondo\index.php(14): CApplication->run()
09 defined('YII_DEBUG') or define('YII_DEBUG',true);
10 // specify how many levels of call stack should be shown in each log message
11 defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
12
13 require_once($yii);
14 Yii::createWebApplication($config)->run();
Dice che non trova la tabella. Sicuro di aver fatto tutto bene? Di aver configurato correttamente tutto come indicato nelle istruzioni?
girub
(Giuseppe Rubino)
April 21, 2011, 6:34pm
7
vabbe ho provato due volte… nulla…sembra proprio non vedere il db, mo nel we di pasqua provo su ubuntu…
grz mille ragazzi
Giuseppe
zaccaria
(Matteo Falsitta)
April 22, 2011, 6:56am
8
Le tabelle le devi installare tu. La definizione la trovi in framework/web/auth/schema.sql
pokok
(Pokok1)
January 30, 2012, 5:40pm
9
So che questa risposta giunge in lieve ritardo, solo ora ho avuto lo stesso problema e forse ho trovato la soluzione.
Riporto ciò che ho trovato facendo una ricerca in rete. Questa è la fonte
Insert 'tablePrefix' => 'tbl_' to db configuration (protected/config/main.php)
'db'=>array(
...
'tablePrefix' => 'tbl_',
),
Aggiungendo questo parametro funziona, la tabella viene trovata.
Qualcosa non mi torna:
[list=1]
[*] facendo varie ricerche in rete è possibile che solo in 3 abbiamo riscontrato questo problema?
[*] modificando config/main.php ora sono obbligato ad aggiungere il prefisso a tutte le tabelle? ci sono altre soluzioni?
[/list]
Qualcuno sarebbe così gentile da dirmi se l’estensione Yii-User è valida o ne avete adottata un’altra?
Grazie
pokok
(Pokok1)
January 31, 2012, 11:10am
10
Risolto il problema del prefisso della tabella
Le indicazioni per l’installazione di questa estensione sono, a mio parere, poco chiare
Ho trovato un commento su code.google che da l’indicazione corretta.
In config/main.php le righe:
'modules'=>array(
'user',
),
vanno sostituite con:
'modules'=>array(
'user' => array(
'tableUsers' => 'tbl_users',
'tableProfiles' => 'tbl_profiles',
'tableProfileFields' => 'tbl_profiles_fields',
),
),
Così facendo la dichiarazione
'db'=>array(
...
'tablePrefix' => 'tbl_',
),
che vincolava tutti i nomi di tabella non è più necessaria