2013-10-02 4 views
0

Я просто загрузил свой сайт в облако. Он отлично работал на локальном хосте. Но это дает мне эту ошибку в представлениях, содержащих RBAC. Я не знаю, почему (см. Код).«CDbAuthManager.AuthAssignment» только для чтения

Я попытался изменить разрешения модели с 644 по 777 для модели AuthAssignment, чтобы узнать, помогло ли это. Это не так.

Ошибка возникает, когда YII пытается запустить код «CheckAccess» в моем контроллере. Ошибка показана в строке 220 приведенного ниже кода.

Кто-нибудь знает, что происходит, и что я могу сделать, чтобы исправить это? Благодаря!

CException 

Property "CDbAuthManager.AuthAssignment" is read only. 
/var/www/vhosts/MYDOMAIN/yii/framework/YiiBase.php(220) 

    208    { 
    209     unset($args[0]); 
    210     $class=new ReflectionClass($type); 
    211     // Note: ReflectionClass::newInstanceArgs() is available for PHP  5.1.3+ 
    212     // $object=$class->newInstanceArgs($args); 
    213     $object=call_user_func_array(array($class,'newInstance'),$args); 
    214    } 
    215   } 
    216   else 
    217    $object=new $type; 
    218 
    219   foreach($config as $key=>$value) 
    220    $object->$key=$value; 
    221 
    222   return $object; 
    223  } 
    224 
    225  /** 
    226  * Imports a class or a directory. 
    227  * 
    228  * Importing a class is like including the corresponding class file. 
    229  * The main difference is that importing a class is much lighter because it only 
    230  * includes the class file when the class is referenced the first time. 
    231  * 
    232  * Importing a directory is equivalent to adding a directory into the PHP include path. 
+1

, пожалуйста, сообщите полную ошибку и где сообщается? Журнал ошибок apache? –

+1

Точно! Полный журнал ошибок поможет узнать, что проблема –

+0

Просто отредактирован, чтобы добавить код, где появляется ошибка. Спасибо, что посмотрели на это. – marooned

ответ

1

Показанный выше. Это была глупая ошибка. Я попытался решить проблему назначения таблицы RBAC после загрузки на сервер Linux и сделал это неправильно. Это правильный путь.

//In config/main.php 

'authManager'=>array(
     'class'=>'CDbAuthManager', 
     'connectionID'=>'db', 
     'assignmentTable'=>'authassignment', 
     'itemTable'=>'authitem', 
     'itemChildTable'=>'authitemchild', 
     ), 
Смежные вопросы