2016-07-25 80 views
0

我創建一個管理員身份驗證到我的應用程序,我產生與工匠命令模式:模型類Laravel運行播種機時5

php artisan make:model Admin -m 

這是生成的類:

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 

class Admin extends Model 
{ 
    // 
} 

這創建了一個空模型和一個基本的遷移。我將此行遷移:

public function up() 
    { 
     Schema::create('admins', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->string('name', 32); 
      $table->string('username', 32); 
      $table->string('email', 320); 
      $table->string('password', 64);    
      $table->string('remember_token', 100)->nullable(); 
      $table->timestamps(); 
     }); 
    } 

然後我用命令行來創建一個播種機:

php artisan make:seeder AdminTableSeeder 

,並且增加了播種機的DatabaseSeeder

public function run() 
    { 
     $this->call(AdminTableSeeder::class); 
    } 

但是,當我運行播種機php artisan db:seed我得到一類失蹤錯誤:

PHP Fatal error: Class 'Admin' not found in /laravelpath/database/seeds/AdminTableSeeder.php on line 15

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Admin' not found

這似乎是管理模式。

我試圖運行修復composer updatecomposer dump-autoload,但他們並沒有幫助。

任何人都知道發生了什麼事?爲什麼我得到這個錯誤,我該如何解決它?

額外的信息:我讀的地方,我的名字我的應用程序,所以我執行php artisan app:name MyAppName,它無處不在加入命名空間(至少在Http文件夾)。我不確定它是否弄亂了我的課程。

@edit 1

這是AdminTableSeeder

use Illuminate\Database\Seeder; 

class AdminTableSeeder extends Seeder 
{ 
    /** 
    * Run the database seeds. 
    * 
    * @return void 
    */ 
    public function run() 
    { 
     DB::table('admins')->delete(); 
     Admin::create(array(
      'name'  => 'Victor Ferreira', 
      'username' => 'victorferreira', 
      'email' => '[email protected]', 
      'password' => Hash::make('123456'), 
     )); 
    } 
} 
+0

你可以發表你的AdminTableSeeder之前,下面的命令? –

+0

@MichalGallovic肯定,只是這樣做 –

+1

添加使用MyAppName \管理;上面的類定義 –

回答

1

在你AdminTableSeeder.php

use App\Models\Admin; 

看一下您的管理模式是在應用程序\型號命名空間這意味着您的管理員模型駐留在應用/模型/文件夾下。如果萬一不工作的管理是不是在應用程序/模型文件夾,然後從管理模型刪除模型,並命名空間應用\管理員

1

有你在運行這個命令檢查?

composer dump-autoload

你必須運行此命令自動加載所有新創建的文件。

0

運行運行或執行播種機文件

composer dump-autoload -o