2013-11-25 2 views
1

Я новичок в YII и загрузить это расширениерасширения юй-пользователь дает неверный псевдоним ошибка

https://github.com/mishamx/yii-user

Я загрузил все необходимые файлы в защищенный / папку

но я продолжаю получать эту ошибку. что мне не хватает?

Alias "user.UserModule" is invalid. Make sure it points to an existing PHP file and the file is readable. 

/Applications/XAMPP/xamppfiles/htdocs/dev2/framework/YiiBase.php(322) 

я отредактировал мой конфиг/основной/PHP который теперь выглядит как этот

<?php 

// uncomment the following to define a path alias 
// Yii::setPathOfAlias('local','path/to/local-folder'); 

// Define a path alias for the Bootstrap extension as it's used internally. 
// In this example we assume that you unzipped the extension under protected/extensions. 
Yii::setPathOfAlias('bootstrap', dirname(__FILE__).'/../extensions/bootstrap'); 

// This is the main Web application configuration. Any writable 
// CWebApplication properties can be configured here. 
return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 
    'name'=>'my site', 
    'theme'=>'bootstrap', // requires you to copy the theme under your themes directory 

    // preloading 'log' component 
    'preload'=>array('log'), 

    // autoloading model and component classes 
    'import'=>array(
     'application.models.*', 
     'application.components.*', 
     'application.modules.user.models.*', 
     'application.modules.user.components.*', 
    ), 

    'modules'=>array(
     // uncomment the following to enable the Gii tool 

     'gii'=>array(
      'class' => 'system.gii.GiiModule', 
      'password' => 'gii', //Enter Your Password Here 
      // If removed, Gii defaults to localhost only. Edit carefully to taste. 
      'ipFilters' => array('127.0.0.1','::1'), 
      'generatorPaths' => array('bootstrap.gii'), 
     ), 
     'user'=>array(
      # encrypting method (php hash function) 
      'hash' => 'md5', 

      # send activation email 
      'sendActivationMail' => true, 

      # allow access for non-activated users 
      'loginNotActiv' => false, 

      # activate user on registration (only sendActivationMail = false) 
      'activeAfterRegister' => false, 

      # automatically login from registration 
      'autoLogin' => true, 

      # registration path 
      'registrationUrl' => array('/user/registration'), 

      # recovery password path 
      'recoveryUrl' => array('/user/recovery'), 

      # login form path 
      'loginUrl' => array('/user/login'), 

      # page after login 
      'returnUrl' => array('/user/profile'), 

      # page after logout 
      'returnLogoutUrl' => array('/user/login'), 
     ), 

    ), 

    // application components 
    'components'=>array(
     'user'=>array(
      // enable cookie-based authentication 
      'allowAutoLogin'=>true, 
      'class' => 'WebUser', 
     ), 

     'bootstrap' => array(
      'class' => 'bootstrap.components.Bootstrap', 
     ), 
     // uncomment the following to enable URLs in path-format 
     'urlManager'=>array(
      'urlFormat'=>'path', 
      'rules'=>array(
       '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
       '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
      ), 

     ), 

     /*'db'=>array(
      'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db', 
     ),*/ 

     // uncomment the following to use a MySQL database 

     'db'=>array(
      'connectionString' => 'mysql:host=localhost;dbname=DBNAME', 
      'emulatePrepare' => true, 
      'username' => 'root', 
      'password' => '', 
      'charset' => 'utf8', 
      'tablePrefix' => 'tbl_', 
     ), 

     'errorHandler'=>array(
      // use 'site/error' action to display errors 
      'errorAction'=>'site/error', 
     ), 
     'log'=>array(
      'class'=>'CLogRouter', 
      'routes'=>array(
       array(
        'class'=>'CFileLogRoute', 
        'levels'=>'error, warning', 
       ), 
       // uncomment the following to show log messages on web pages 
       /* 
       array(
        'class'=>'CWebLogRoute', 
       ), 
       */ 
      ), 
     ), 
    ), 

    // application-level parameters that can be accessed 
    // using Yii::app()->params['paramName'] 
    'params'=>array(
     // this is used in contact page 
     'adminEmail'=>'[email protected]******.com', 
    ), 
); 

?>

и это мой конфиг/console.php файл

<?php 

// This is the configuration for yiic console application. 
// Any writable CConsoleApplication properties can be configured here. 
return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 
    'name'=>'My Console Application', 

    // preloading 'log' component 
    'preload'=>array('log'), 

    // application components 
    'components'=>array(
     // uncomment the following to use a MySQL database 
     'db'=>array(
     'connectionString' => 'mysql:host=localhost;dbname=*****', 
     'emulatePrepare' => true, 
     'username' => 'root', 
     'password' => '', 
     'charset' => 'utf8', 
     'tablePrefix' => 'tbl_', 
    ), 

     'log'=>array(
      'class'=>'CLogRouter', 
      'routes'=>array(
       array(
        'class'=>'CFileLogRoute', 
        'levels'=>'error, warning', 
       ), 
      ), 
     ), 
     ), 
     'modules'=>array(

      'user'=>array(
       # encrypting method (php hash function) 
       'hash' => 'md5', 

       # send activation email 
       'sendActivationMail' => true, 

       # allow access for non-activated users 
       'loginNotActiv' => false, 

       # activate user on registration (only sendActivationMail = false) 
       'activeAfterRegister' => false, 

       # automatically login from registration 
       'autoLogin' => true, 

       # registration path 
       'registrationUrl' => array('/user/registration'), 

       # recovery password path 
       'recoveryUrl' => array('/user/recovery'), 

       # login form path 
       'loginUrl' => array('/user/login'), 

       # page after login 
       'returnUrl' => array('/user/profile'), 

       # page after logout 
       'returnLogoutUrl' => array('/user/login'), 
      ), 
    ) 
); 

ответ

1

не уверен, какую версию YII-пользователя вы используете, но сначала загрузите latest version from here и следуйте за настройками с этой страницы.

убедитесь, что вы распаковать все файлы в защищаемого/модули/пользователя (Примечание: модули и пользовательские папки не существуют, поэтому вам придется сделать один)

однажды сделан, вставить элементы в ZII .widgets.CMenu массив (защищенный/просмотров/макеты/main.php)

array('url'=>Yii::app()->getModule('user')->loginUrl, 'label'=>Yii::app()->getModule('user')->t("Login"), 'visible'=>Yii::app()->user->isGuest), 
array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("Register"), 'visible'=>Yii::app()->user->isGuest), 
array('url'=>Yii::app()->getModule('user')->profileUrl, 'label'=>Yii::app()->getModule('user')->t("Profile"), 'visible'=>!Yii::app()->user->isGuest), 
array('url'=>Yii::app()->getModule('user')->logoutUrl, 'label'=>Yii::app()->getModule('user')->t("Logout").' ('.Yii::app()->user->name.')', 'visible'=>!Yii::app()->user->isGuest), 
1

если вы работаете g с окружением linux, возможно, что ваши файлы не имеют достаточного количества предисловий для запуска файлов в папке каталога пользователей.

попробовать это знать, если проблема здесь

CHMOD -R 777/защищенный/модули/пользователя/

+0

вы имеете в виду 'CHMOD -R 777/защищенный/модели/пользователь/'? да его уже 777, но все равно не работает – user2636556

+2

вам следует распаковывать пользователя под MODULES, а не МОДЕЛИ! – tinybyte

0

Я не знаю, почему, но я также и тот же вопрос после того, как я загрузил последнюю версию yiibooster 4.0.1 версии моего проблема решена путем изменения всех псевдонимов «bootstrap» с помощью «бустера» во всей части моего приложения п.

В качестве примера

'bootstrap' => array(
     'class' => 'ext.yiibooster.components.Bootstrap', 
    ), 

с

'booster' => [ 
     'class' => 'ext.yiibooster.components.Booster', 
    ], 

Также не забудьте использовать методы фильтрации во всех действиях:

public function filters(){ 
    return [ 
     'accessControl', 
     'postOnly + delete', 
     ['booster.filters.BoosterFilter - delete'], 
    ]; 
} 
Смежные вопросы