簡體   English   中英

Yii2 - 無法實例化組件或 class “yii\rbac\DBManager”

[英]Yii2 - Failed to instantiate component or class "yii\rbac\DBManager"

我正在嘗試在 linux 服務器上設置我的 yii2 站點,並且我使用我的 windows pc 使用 wampp 進行開發。

我已將 RBAC AuthManagement 設置為使用 DBManager,一切都在我的開發站點上完美運行。 但是,當我嘗試將該站點安裝到我的 Live 服務器上時,出現 Yii2 NonInstantiableException 錯誤,指出“類 yii\rbac\DBManager 不存在”(附截圖)

Yii2 Class 錯誤

在查看堆棧跟蹤時,它突出顯示了我的代碼中的一行,其中我有 Yii 檢查用戶角色以查看它是否可以顯示導航項。 我附上了下面的代碼以顯示突出顯示的行:


use yii\helpers\Html;

$frontend_url = "frontend site";

//organisation navigation links
$orgNav[] = ['label' => "Organisation Details"];
$orgNav[] = ['label' => "All Organisation List",'visible'=>Yii::$app->user->can('owner')];
$orgNav[] = ['label' => "Organisation User Management",'visible'=>Yii::$app->user->can('superAdmin')];
$orgNav[] = ['label' => "Organisation Customer Management"];

if(Yii::$app->user->can('admin')){
    $menuItems[] = ['label'=>'Organisation','items'=>$orgNav];
}

//Ticket Management Links
$ticketNav[] = ['label'=>'Open Tickets'];
$ticketNav[] = ['label'=>'Closed Tickets'];
$ticketNav[] = ['label'=>'My Tickets'];
$ticketNav[] = ['label'=>'All Tickets (For Org)','visible' => Yii::$app->user->can('admin')];
$ticketNav[] = ['label'=>'Open a new Support Ticket'];

$menuItems[] = ['label'=>'Tickets','items'=>$ticketNav];

//user navigation links
$userNav[] = ['label'=>'Profile', 'url'=>'/user/index'];
$userNav[] = ['label' => 'Account Settings'];
$userNav[] = [
    'label' => 'Logout (' . Yii::$app->user->identity->username . ')',
    'url' => ['/site/logout'],
    'linkOptions' => ['data-method' => 'post']
];
$menuItems[] = ['label'=>'User','items'=>$userNav];

//admin links (for owner and superAdmins)

$adminNav[] = ['label' => 'Organisation Management','visible' => Yii::$app->user->can('owner')];
$adminNav[] = ['label' => 'User Management','visible' => Yii::$app->user->can('owner')];
$adminNav[] = ['label' => 'License Management','visible' => Yii::$app->user->can('owner')];
$adminNav[] = ['label' => 'Site Settings','visible' => Yii::$app->user->can('owner')];

$menuItems[] = ['label' => 'Admin','items'=>$adminNav,'visible'=>Yii::$app->user->can('owner')];

$menuItems[] = ['label' => '> Home', 'url' => ['/']];
$menuItems[] = ['label' => '> Visit Website', 'url' => $frontend_url];

突出顯示的行是

$orgNav[] = ['label' => "All Organisation List",'visible'=>Yii::$app->user->can('owner')];

我用谷歌搜索了這個錯誤,但看到了其他沒有為我提供太多信息的類。

請問我可以對此有所了解嗎?

事實上,您在生產中使用 linux 而在開發中使用 windows 您的問題可能與兩個操作系統之間文件名的不同大小寫管理有關

所以請注意你的 app/config/main.php 'component' 部分你有正確的文件名條目

這是相同環境(linux --- 窗口)的 authManger 配置的工作示例,您可以看到條目是DbManger而不是DBManager ('b' 是小寫的)

'components' => [
......
   'authManager' => [
          'class' => 'yii\rbac\DbManager',
          ......
      ],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM