【问题标题】:yii Property "CWebUser.bootstrap" is not defined and can't access giiyii 属性“CWebUser.bootstrap”未定义,无法访问gii
【发布时间】:2013-10-28 08:51:01
【问题描述】:

我有一个使用 yii 框架的网站。作为第一件事,在我启动并运行网站后,我想安装引导程序(yii-bootstrap-2.1.0.r355.zip)。然而,这并不顺利。

我收到以下错误“未定义属性“CWebUser.bootstrap”。”

Bootstrap 扩展被放置为 /blog/protected/extensions/bootstrap

我的主配置文件是这样的

<?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.

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


return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'be creative',
'theme'=>'bootstrap', // requires you to copy the theme under your themes directory

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

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

'defaultController'=>'post',

// application components
'components'=>array(
    'user'=>array(
        // enable cookie-based authentication
        'allowAutoLogin'=>true,
        'bootstrap' => array('class'=>'ext.bootstrap.components.Bootstrap')
    ),

    // gii module...        
    'modules'=>array(
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'admin',
            'generatorPaths'=>array('bootstrap.gii')
        ),
    ),

    'db'=>array(
        'connectionString' => 'sqlite:protected/data/blog.db',
        'tablePrefix' => 'tbl_',
    ),
    // uncomment the following to use a MySQL database

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

    'errorHandler'=>array(
        // use 'site/error' action to display errors
        'errorAction'=>'site/error',
    ),
    'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            'post/<id:\d+>/<title:.*?>'=>'post/view',
            'posts/<tag:.*?>'=>'post/index',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),
    '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'=>require(dirname(__FILE__).'/params.php'),

);

【问题讨论】:

  • 虽然这不会直接解决您的问题/回答您的问题,但我建议您使用 Yiistrap 而不是 Yii-Bootstrap。它本质上是后者的重构。
  • 现在我收到以下错误...:(内部服务器错误属性“CWebApplication.db”是只读的。Web 服务器处理您的请求时发生内部错误。请联系站长报告这个问题。谢谢。

标签: php twitter-bootstrap yii iunknown


【解决方案1】:

您指定了无效的components 配置:

  1. user 组件用于身份验证。
  2. 你需要指定bootstrap组件

    'components'=>array(
        'user'=>array(
            'allowAutoLogin'=>true,
            'class' => 'WebUser'    //if you expanded CWebUser Yii class
        ),
        'bootstrap'=>array(
            'class'=>'ext.bootstrap.components.Bootstrap',
        ),
    ),
    

【讨论】:

  • 现在我收到以下错误...:(内部服务器错误属性“CWebApplication.db”是只读的。Web 服务器处理您的请求时发生内部错误。请联系站长报告这个问题。谢谢。
  • 我想,你得到这个错误,因为你指定了两次数据库连接
  • 谢谢你,但我在 main.php 中只定义了一次 db
  • 在您发布的main.php 配置中,db 连接被指定了两次。一次用于 sqlite,第二次用于 mysql。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2012-03-31
  • 2021-11-18
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多