删除级联上的Laravel 8迁移不起作用
您好,我有一个表父表和表父表的三个子表 我创建了这样的迁移 A.父母删除级联上的Laravel 8迁移不起作用,laravel,migration,Laravel,Migration,您好,我有一个表父表和表父表的三个子表 我创建了这样的迁移 A.父母 public function up() { Schema::create('kegiatan', function (Blueprint $table) { $table->id(); $table->string('kode_rekening'); $table->string('uraian'); $table->strin
public function up()
{
Schema::create('kegiatan', function (Blueprint $table) {
$table->id();
$table->string('kode_rekening');
$table->string('uraian');
$table->string('anggaran');
$table->string('anggaran_perubahan')->nullable();
$table->timestamps();
$table->softDeletes();
});
}
B.一号儿童
public function up()
{
Schema::create('uraian', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('kegiatan_id');
$table->string('kode_rekening');
$table->string('uraian');
$table->string('anggaran');
$table->string('anggaran_perubahan')->nullable();
$table->timestamps();
$table->softDeletes();
$table->foreign('kegiatan_id')->references('id')->on('kegiatan')->onDelete('cascade');
});
}
C.三号儿童
public function up()
{
Schema::create('uraian_kegiatan', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('uraian_id');
$table->string('kode_rekening');
$table->string('uraian');
$table->string('anggaran');
$table->string('anggaran_perubahan')->nullable();
$table->timestamps();
$table->softDeletes();
$table->foreign('uraian_id')->references('id')->on('uraian')->onDelete('cascade');
});
}
所有内容均通过外键进行关联。我尝试删除父表上的数据,如id 1。但在我的孩子身上,这些数据也没有被删除。我认为这是错误的,因为我设置了删除casscade。我使用Mysql并尝试在我的“配置/数据库”中添加“InooDB”,如下所示:
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => 'InnoDB',
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
但它仍然不起作用,首先我在这个配置/数据库上看到,这个引擎是由'null'设置的
有人能帮忙吗?还是给出解决方案?谢谢您softdelete Cascade默认不工作您需要使用此功能您尝试删除记录的方式是?用什么?