Laravel 5:php artisan 迁移:刷新

新手上路,请多包涵

我正在做一个 laravel 项目,每次我更改表(添加或删除列)并运行 php artisan migrate:refresh 。我收到此错误:

[Symfony\Component\Debug\Exception\FatalErrorException] 无法在写入上下文中使用方法返回值

解决方案尝试:

  1. 运行 composer dump-autoload (失败)
  2. 在数据库中删除表,删除迁移文件并重新启动(有效)

以前的迁移文件:

 <?php

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

class CreateCommentsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('comments', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('post_id');
            $table->string('body');
            $table->timestamps();
        });
    }

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

更改的迁移文件:

     <?php

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

class CreateCommentsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('comments', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id');
            $table->integer('post_id');
            $table->string('body');
            $table->timestamps();
        });
    }

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

我在 up 函数的更改文件中添加了 user_id

原文由 mushood badulla 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 307
2 个回答

试试这个对我有用的命令

php artisan migrate:fresh

但是,请小心!此命令将从您的数据库中删除所有数据:

注意:migrate:fresh 命令将从数据库中删除所有表,然后执行 migrate 命令。

根据 Laravel 文档 9.x。

原文由 NomanJaved 发布,翻译遵循 CC BY-SA 4.0 许可协议

试试这个触发这个命令

php artisan make:migration add_user_id_to_comments_table --table=comments

这将创建一个新的迁移文件

$table->integer('user_id')->after('id');

然后使用

php artisan migrate

原文由 Prathamesh Doke 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏