Laravel 4 - 工作台中的一次迁移可以回滚,而其他人则不能

时间:2013-08-27 16:07:51

标签: php mysql laravel laravel-4

我有两种类型的工作台迁移:创建常规表并为多对多关系创建数据透视表。

常规迁移示例:

<?php

use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration {

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
        Schema::create('users', function(\Illuminate\Database\Schema\Blueprint $table)
        {
            $table->increments('id')->unsigned();

            $table->string('login')->unique();
            $table->string('username')->unique();
            $table->string('password');
            $table->string('email');
            $table->boolean('active')->default(true);

            $table->timestamps();
            $table->softDeletes();
        });
}

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

}

以上迁移可以回滚

<?php

use Illuminate\Database\Migrations\Migration;

class CreatePivotRoleUser extends Migration {

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
        Schema::create('role_user', function(\Illuminate\Database\Schema\Blueprint $table)
        {   
            $table->integer('role_id')->unsigned();
            $table->integer('user_id')->unsigned();

            $table->primary(['role_id', 'user_id']);

            $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        });
}

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

}

虽然这不可能,因为它给出了

  

“未找到类'CreatePivotPermissionRole'”

错误。

如何解决?

1 个答案:

答案 0 :(得分:0)

您的代码看起来是正确的。 如果找不到CreatePivotPermissionRole,则表示之前已删除。检查所有down()方法的内容,那里肯定有问题。