Yii with bootstrap extension,Alias “bootstrap.widg

2019-08-09 08:15发布

问题:

I am trying to use bootstrap extension with yii but I keep getting the error mentioned in the title,i double checked my configuration file but I dont know where I am doing it wrong. Here is my config/main.php

    <?php

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

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
        'language'=>'en_us',
        'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
        'name'=>'CODEPAC',

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

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

        ),

        'modules'=>array(
                // uncomment the following to enable the Gii tool
                'user'=>array(
                'debug'=>false,
                'userTable'=>'user',
                'translationTable'=>'translation',
                'mailer'=>'PHPMailer',
                'facebookConfig'=>array(
                        'appId'=>'12345',
                        'secret'=>'secret',
                        'domain'=>'localhost',
                        'status'=>true,
                        'xfbml'=>true,
                        'cookie'=>true,
                        'lang'=>'en_US',)
                ),
                 'avatar'=>array(),

                'profile' => array(
                'privacySettingTable' => 'privacysetting',
                'profileFieldTable' => 'profile_field',
                'profileTable' => 'profile',
                'profileCommentTable' => 'profile_comment',
                'profileVisitTable' => 'profile_visit',
                 ),
                 'role' => array(
                'roleTable' => 'role',
                'userRoleTable' => 'user_role',
                'actionTable' => 'action',
                'permissionTable' => 'permission',
                 ),

                'registration' => array(
                 ),


                'gii'=>array(
                        'class'=>'system.gii.GiiModule',
                        'password'=>'password',
                        // If removed, Gii defaults to localhost only. Edit carefully to taste.
                        'ipFilters'=>array('127.0.0.1','::1'),
                        'generatorPaths'=>array('bootstrap.gii',),
                ),

        ),

        // application components
        'components'=>array(
                'bootstrap'=>array(
                'class'=>'ext.bootstrap.components.Bootstrap',),
                'session'=>array(
                'sessionName'=>'SiteSession',
                'class'=>'CHttpSession',
'autoStart'=>true,
                ),
                 'cache'=>array('class'=>'system.caching.CFileCache'),
                        'user'=>array(
                        'class'=>'application.modules.user.components.YumWebUser',
                        // enable cookie-based authentication
                        'allowAutoLogin'=>true,
                         'loginUrl'=>array('//user/user/login'),
                ),
                // 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=myDb',
                        'emulatePrepare' => true,
                        'username' => 'myDbUsername',
                        'password' => 'myDbPassword',
                        'charset' => 'utf8',
                        'tablePrefix'=>'',
                ),

                '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'=>'example@example.com',
        ),
        'import'=>array('application.modules.user.models.*',
        'application.models.*',
        'application.components.*',),
);

回答1:

Yii-Bootstrap is no longer preloaded, so now must use path alias. Do this. Download the lastest version of yii-bootstrap. In the first line of your main.php config paste:

Yii::setPathOfAlias('bootstrap', dirname(__FILE__).'/../extensions/bootstrap');

And configure the extension like this:

'components'=>array(
        [...]
    'bootstrap' => array(
                //'class' => 'ext.bootstrap.components.Bootstrap'),
                'class'=>'bootstrap.components.Bootstrap'),

And you are done.

For more references, read this: http://www.cniska.net/yii-bootstrap/setup.html



回答2:

Make sure you assign [read] access permission to extensions/bootstrap that you uncompressed.

If you are on Mac / Linux, execute:

chmod 755 bootstrap

On windows, right click on the folder, and assign read access to Apache's account. Sometimes assigning read access to "Everyone" is acceptable too (depending if you care about security or not, though).



回答3:

I was having the same problem. I granted full(777) permission to the extension folder.

Try it.



回答4:

I ran into this on my production server even though it worked fine locally.

The solution was to grant apache ownership to the yii installation:

sudo chown www-data:www-data -R /var/www/yourapp

previously ownership was root and apache couldn't see the files