Laravel-SQLSTATE[23000]:违反完整性约束:1451



你好,我的laravel 9应用程序出现此错误:SQLSTATE[23000]:完整性约束冲突:1451无法删除或更新父行:外键约束失败

delete from
`users`
where
`id` = 1

我的代码

<tbody>
@foreach ($users as $user)               
<tr class="text-center">
<th>#{{$user->id}}</th>
<td>{{$user->code}}</td>
<td>{{$user->role}}</td>
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
<td>{{$user->created_at}}</td>
<td>{{$user->updated_at}}</td>
<td>{{$user->updated_at}}</td>
<td class="d-flex justify-content-between">
<a href="{{ route('admin.edit', $user->id) }}" class="btn btn-outline-warning text-center"><i class="fa-solid fa-user-pen ms-1"></i></a>
<a href="" class="btn btn-outline-primary text-center"><i class="fa-solid fa-envelope"></i></a>
<div>
<button class="btn btn-outline-danger text-center userDelete"><i class="fa-solid fa-circle-xmark"></i></button>
</div>
<!-- The Modal -->
<div id="confirmDelete" class="custom-confirm">
<!-- Modal content -->
<div class="modal-content text-center">
<p>Sei sicuro di voler <span class="text-danger">cancellare</span> l'utente?</p>
<form action="{{route('admin.destroy', $user->id)}}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-success me-3">Conferma</button>
<span class="cancelDelete btn btn-warning">Annulla</span>
</form>
</div>  
</div> 
</td>
</tr>
@endforeach
</tbody>

在没有确认模式的情况下,它只与一起工作

<form action="{{route('admin.destroy', $user->id)}}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-success me-3">Conferma</button>
<span class="cancelDelete btn btn-warning">Annulla</span>
</form>

为什么我会犯那个错误?

问题截图错误图像

表上有外键。您需要从相关表中删除第一个相关行。例如,如果我们有postscomments,则我们需要从包含post_id的comments表中删除。在代码中看起来像:

$post = Post::findOrFail($id);
$comments = Comment::where('post_id', $id)->delete();
$post->delete();

最新更新