尝试使用db:seed时从命令提示符处获取该错误。我确实运行了composer dump
,并确保Seeder命名空间在我的种子文件中。
我不明白为什么它告诉我用户类(我确定指的是该模型)不存在,当我在 app中有以下内容时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')
));
}
}
我知道这些字段与$ fillable变量不匹配,但我认为这不会导致该类甚至无法被识别。在播种之前,是否需要在此文件中添加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和诸如此类的东西?
答案 0 :(得分:1)
在播种机中添加顶部
Use App\User;
答案 1 :(得分:0)
您在播种机中引用了User
,但您从未导入过它。您可以通过在播种机顶部添加use App\User;
来导入它,也可以将命名空间添加到参考中:
\App\User::create(array( ...
答案 2 :(得分: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')
)
);
}
}