gpt4 book ai didi

php - 调用未定义的方法 Illuminate\Database\Schema\MySqlBuilder::dropForeign()

转载 作者:行者123 更新时间:2023-12-04 12:49:15 24 4
gpt4 key购买 nike

class CreateCommentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('comments', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email');
$table->text('comment');

$table->boolean('approved');
$table->integer('post_id')->unsigned();
$table->timestamps();
});

Schema::table('comments', function (Blueprint $table) {
$table->foreign('post_id')->references('id')->on('posts');
});
}

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

这就是我的迁移类的样子,我一直试图从数据库中删除该表,但它抛出了一个错误。

错误

Call to undefined method Illuminate\Database\Schema\MySqlBuilder::dropForeign()

我已经阅读了文档,但它似乎没有太大帮助。

谁能指出我的错误,解决方案是什么?

如你所知,我是 laravel 的新手。别着急。谢谢!

最佳答案

dropForeign需要在Schema::table下调用用Blueprint对象,

Schema::table('comments', function (Blueprint $table) {
$table->dropForeign('comments_post_id_foreign');
});

这遵循 <table_name>_<foreign_table_name>_<column_name>_foreign 的命名约定.

Schema::table('comments', function (Blueprint $table) {
$table->dropForeign(['your_key_name']);
});

关于php - 调用未定义的方法 Illuminate\Database\Schema\MySqlBuilder::dropForeign(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41416993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com