0

私はlaravelについて学ぼうとしています。次のエラーが発生し続けます。

[ReflectionException]
Class UserTableSeeder does not exist

私が何をした:

ユーザークラス

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', 'username', 'email', 'password'];

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

CreateUserTable の移行:

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('name');
            $table->string('username');
            $table->string('email')->unique();
            $table->string('password', 60);
            $table->rememberToken();
            $table->timestamps();
        });
    }

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

UserTableSeeder

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class UserTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB:table('users')->delete();
        User::create(array(
            'name'      => 'Graham Neal',
            'username'  => 'Graham',
            'email'     => 'grahamneal1991@gmail.com',
            'password'  => Hash::make('0258456'),
        ));
    }
}

データベースシーダー

    use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();

        // $this->call(UserTableSeeder::class);
        $this->call('UserTableSeeder');

        Model::reguard();
    }
}

データベースシーダーで、次のことを試しました:

$this->call('UserTableSeeder');
$this->call('UserTableSeeder::User');
$this->call('App/UserTableSeeder');
$this->call('App/UserTableSeeder::User');

クラスが見つからないことはわかっていますが、その理由を見つけることについて暗闇に残されていますか? 私はグーグルを検索し、他の人がうまくいかなかった他の場所を見つけましたが、同じ間違いをしていないようです. これが本当にばかげた質問ではないことを願っています。

編集*

composer dump-autoload を実行すると、上記のエラーと次の例外トレースが表示されます。

  [RuntimeException]
  Could not scan for classes inside "user" which does not appear to be a file
   nor a folder

このエラーは、クラスを composer.json ファイルに手動で追加した後に発生しました。

artisan db:seed を php しようとすると、別のエラーが発生します。

[Symfony\Component\Debug\Exception\FatalErrorException]
Call to undefined function table()
4

2 に答える 2

0

ファイルの名前が正しいことを確認してください。また、DatabaseSeeder と同じフォルダーにある必要があります。

于 2015-07-07T18:31:09.133 に答える