laravel 如何从数据库中删除用户?[duplicate]

uwopmtnx  于 2023-03-09  发布在  其他
关注(0)|答案(3)|浏览(120)
    • 此问题在此处已有答案**:

laravel Eloquent ORM delete() method(7个答案)
昨天关门了。
我在Laravel中进行测试,我想截断所有用户,只创建一个。此代码显示错误SQLSTATE[42000]: Syntax error or access violation: 1701 Cannot truncate a table referenced in a foreign key constraint。我可以做什么来截断用户?只是我不想使用违反数据库设置的解决方案,例如Schema::disableForeignKeyConstraints();

public function test_delete_user()
    {
 
        DB::table('users')->truncate();
        $role = User::factory()->create();
     .......
        
    }
6g8kf2rb

6g8kf2rb1#

您的表用户有一个外键约束,要删除它才能使截断工作。
我能看看数据库模式吗?

ALTER TABLE table_name 
DROP FOREIGN KEY constraint_name;

这是给MysQl的在你桌上试试

bt1cpqcv

bt1cpqcv2#

使用前

DB::table('users')->truncate();

您可以尝试使用(假设您的外表名为"addresses")

DB::statement('ALTER TABLE addresses DROP FOREIGN KEY addresses_user_id_foreign');

可能会对你有帮助。然后看起来

public function test_delete_user()
    {
        DB::statement('ALTER TABLE addresses DROP FOREIGN KEY addresses_user_id_foreign');
 
        DB::table('users')->truncate();
        $role = User::factory()->create();
     .......
        
    }
oaxa6hgo

oaxa6hgo3#

$user =用户::查找($id);
$用户-〉删除();
如果您不使用SoftDeletingTrait特性或
$user =用户::查找($id);
$user-〉强制删除();

相关问题