我创建了一个新项目和一个新的新模式,使用Users表进行了非常简单的设置,并尝试运行迁移,但迁移器在第一个表上失败,当然这是Users表.我以前遇到过很多麻烦,详细介绍了我之前的问题,最后我从头开始.我有一个超级简单的设置,仍然是迁移器失败.有bug吗?我在哪里可以找到它?我应该将此报告为错误吗?对于那些试图采用这个平台的人来说,在这个过程的早期就像这样难倒,这真是一件令人沮丧的事情.我应该放弃迁移并使用sql脚本创建我的表并继续前进吗?
这是我得到的错误,非常类似于我在上一个问题中详述的错误:
"Class 'UsersTable' not found... in src\Illuminate\Database\Migrations\Migrator.php line 297
Run Code Online (Sandbox Code Playgroud)
这是我的迁移文件:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateUsersTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
// Creates the users table
Schema::create('users', function(Blueprint $table)
{
// $table->engine = 'InnoDB';
$table->increments('id');
$table->string('username', 40)
->nullable()
->default(null);
$table->string('email', 40)
->unique();
$table->string('password', 64);
$table->smallInteger('acct_type')
->unsigned()
->default(1);
$table->string('confirmation_code');
$table->boolean('confirmed')
->default(false);
$table->timestamps();
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}
Run Code Online (Sandbox Code Playgroud)
失意.
您的文件名可能存在问题.使用工匠生成迁移会生成格式的文件名year_month_day_time_class_name_separated_by_underscores.
Laravel用于从文件名中提取类名的代码
public function resolve($file)
{
$file = implode('_', array_slice(explode('_', $file), 4));
$class = studly_case($file);
return new $class;
}
Run Code Online (Sandbox Code Playgroud)
这array_slice(...,4)一点意味着Laravel 要求文件名在开头有四个下划线分隔的块,可以丢弃,文件名的其余部分是蛇案例类名.
不是我如何做的第一选择,但你去了.