2017-01-04 13 views
3

私はLaravelを一般的に使いこなしており、Laratrustアドオン(ユーザーロールとアクセス許可アドオン)を使用してシーダーを設定しようとしています。 php artisan db:seedを実行するとエラーが発生し、Class 'App\Role' not foundと表示され、なぜロールクラスではなくPermissionsクラスが表示されるのかわかりません。私は私のlaratrust.phpことをチェックしましたLaravelとLaratrust名前空間が見つかりません

namespace App; 
use Laratrust\LaratrustPermission; 

class Permission extends LaratrustPermission 
{ 
    // 
} 

namespace App; 
use Laratrust\LaratrustRole; 

class Role extends LaratrustRole 
{ 
    // 
} 

:私はこのそれぞれの内容と私のAppディレクトリ内PermissionRoleファイルを持っている

use Illuminate\Database\Seeder; 
use App\Permission; 
use App\Role; 

class LaratrustSeeder extends Seeder 
{ 
    /** 
    * Run the database seeds. 
    * 
    * @return void 
    */ 
    public function run() 
    { 
     $owner = new Role(); 
     $owner->name   = 'owner'; 
     $owner->display_name = 'Project Owner'; 
     $owner->description = 'User is the owner of a given project'; 
     $owner->save(); 
    } 
} 

:私のシーダは、このようになります設定ファイルには'role' => 'App\Role''permission' => 'App\Permission'が設定されています。私はcomposer dump-autoloadを再訪しました。なぜそれは1つではなく、他のものを見ているのですか?

+0

私はちょうど直接Laratrust \ LaratrustRoleを使用し、 '参照している場合は、私のシーダに'と 'LaratrustRole()'の代わりに '役割()'それが動作を使用しています。 ..私の名前空間に何が間違っていますか? – jrothafer

+0

あなたが与えた情報ですべてがうまく見えます。他のシーダーが 'DatabaseSeeder.php'で呼び出されているのでしょうか? 'php artisan db:seed --class = LaratrustSeeder'を実行してみてください。 –

答えて

3

Laraturstはそうあなたが

にコードを変更する必要があり、正しい 名前空間

Laratrust\Models\LaratrustRole; 
Laratrust\Models\LaratrustPermission; 

だろう 最新バージョン(5.0)にその名前空間ためLaratrustRoleLaratrustPermissionを変更

app \ Role

<?php 

namespace App; 

use Laratrust\Models\LaratrustRole; 

class Role extends LaratrustRole 
{ 
    // 
} 

アプリの\許可

<?php 

namespace App; 

use Laratrust\Models\LaratrustPermission; 

class Permission extends LaratrustPermission 
{ 
    // 
} 
関連する問題