2015-04-06 3 views
1

Получение этой ошибки из командной строки при попытке db: seed. Я выполнил composer dump и обеспечил, чтобы пространства имен Seeder находились в моих файлах семени.Класс «Пользователь» не существует?

Я не понимаю, почему он говорит мне класс User (который я уверен, что имеет в виду модель) не существует, когда у меня есть следующие в приложения \ User.php

<?php namespace App; 

use Illuminate\Auth\Authenticatable; 
use Illuminate\Database\Eloquent\Model; 
use Illuminate\Auth\Passwords\CanResetPassword; 
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; 
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; 

class User extends Model implements AuthenticatableContract, CanResetPasswordContract { 

    use Authenticatable, CanResetPassword; 

    /** 
    * The database table used by the model. 
    * 
    * @var string 
    */ 
    protected $table = 'users'; 

    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = ['name', 'email', 'password']; 

    /** 
    * The attributes excluded from the model's JSON form. 
    * 
    * @var array 
    */ 
    protected $hidden = ['password', 'remember_token']; 

} 

Вот мой файл UserTableSeeder.php в базы данных \ семенах

<?php 

use Illuminate\Database\Seeder; 

class UserTableSeeder extends Seeder 
{ 

    public function run() 
    { 
     DB::table('users')->delete(); 
     User::create(array(
      'username' => 'admin', 
      'password' => Hash::make('secret') 
     )); 
    } 

} 

Я знаю, что эти поля не совпадают с переменной $ заполняемых, но я не думаю, что будет вызывать класс даже не узнавать зет. Должен ли я добавить функцию create() в этот файл, прежде чем я могу семенировать?

Вот моя база данных (временная метка) _create_users_table.php для хорошей мерой:

<?php 

use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateUsersTable extends Migration { 

    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('users', function(Blueprint $table) 
     { 
      $table->increments('id'); 
      $table->string('username'); 
      $table->string('password'); 
      $table->rememberToken()->nullable(); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::drop('users'); 
    } 

} 

Любая идея, что происходит? Кроме того, используя мою собственную таблицу «Пользователи», я привожу себя из того, что собираюсь использовать встроенный auth и еще много чего?

ответ

1

В вашей сеялке добавить в верхней

Use App\User; 
+0

Вы хотите сказать, что в сеялке? В миграции нет ссылок на «Пользователь». –

+0

Простите, да, это команда db: seed, с которой вы столкнулись. Я сейчас нахожусь на дороге и просто выскочил. –

0

Вы ссылаетесь User в вашем сеялке, но вы никогда не импортировать его. Вы можете импортировать его, добавив use App\User; в верхней части сеялки, или вы можете добавить пространство имен в ссылку:

\App\User::create(array(... 
0

Изменить UserTableSeeder.php к этому

<?php 

use App\User; 

use Illuminate\Database\Seeder; 

class UserTableSeeder extends Seeder 
{ 

    public function run() 
    { 
     DB::table('users')->delete(); 
     User::create(array(
      'username' => 'admin', 
      'password' => Hash::make('secret') 
     )); 
    } 

} 

или Вы можете сделать что-то вместо этого

<?php 

use Illuminate\Database\Seeder; 

class UserTableSeeder extends Seeder { 

    public function run() 
    { 

     DB::table('users')->delete(); 

     DB::table('users')->insert(
      array(
       'username' => 'admin', 
       'password' => Hash::make('secret') 
      ) 
     ); 

    } 

} 
Смежные вопросы