> 데이터 베이스 > MySQL 튜토리얼 > 다음은 귀하의 기사 내용에 맞는 몇 가지 질문 기반 제목입니다. * **Laravel 데이터베이스 제약 오류: 좋아요가 있는 게시물을 삭제할 수 없는 이유는 무엇입니까?** * **Laravel에서 상위 행 삭제: 방법

다음은 귀하의 기사 내용에 맞는 몇 가지 질문 기반 제목입니다. * **Laravel 데이터베이스 제약 오류: 좋아요가 있는 게시물을 삭제할 수 없는 이유는 무엇입니까?** * **Laravel에서 상위 행 삭제: 방법

Mary-Kate Olsen
풀어 주다: 2024-10-25 10:37:31
원래의
270명이 탐색했습니다.

Here are a few question-based titles that fit the content of your article:

* **Laravel Database Constraint Error: Why Can't I Delete a Post with Likes?**
* **Deleting Parent Rows in Laravel: How to Handle Foreign Key Constraints?**
* **SQLSTATE[23000]:

Laravel의 데이터베이스 제약 조건 오류: "상위 행을 삭제하거나 업데이트할 수 없습니다"

Laravel에서 발생하는 일반적인 오류는 "SQLSTATE[23000"입니다. ]: 무결성 제약 조건 위반: 1451 상위 행을 삭제하거나 업데이트할 수 없습니다." 이 오류는 관련 테이블에 하위 행이 있는 상위 테이블에서 행을 삭제하려고 할 때 발생합니다.

귀하의 경우 좋아요가 연결된 게시물을 삭제하려고 할 때 이 오류가 발생합니다. 이는 좋아요 테이블에 게시물 테이블을 참조하는 외래 키 제약 조건이 있기 때문입니다. 게시물을 삭제하려고 하면 좋아요 테이블에 해당 게시물에 의존하는 레코드가 아직 남아 있기 때문에 삭제할 수 없습니다.

이 오류를 해결하려면 onDelete('cascade'를 사용하도록 데이터베이스 스키마를 수정하면 됩니다. ). 상위 레코드가 삭제되면 연결된 하위 레코드도 자동으로 삭제됩니다.

onDelete('cascade')를 사용하여 업데이트된 좋아요 스키마:

<code class="php">Schema::create('likes', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('post_id')->unsigned();
    $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
});</code>
로그인 후 복사

또는 상위 레코드를 삭제하기 전에 연결된 하위 레코드를 수동으로 삭제할 수 있습니다. Laravel 모델에서는 다음 코드를 사용하여 이를 수행할 수 있습니다:

<code class="php">$post->likes()->delete();
$post->delete();</code>
로그인 후 복사

위 내용은 다음은 귀하의 기사 내용에 맞는 몇 가지 질문 기반 제목입니다. * **Laravel 데이터베이스 제약 오류: 좋아요가 있는 게시물을 삭제할 수 없는 이유는 무엇입니까?** * **Laravel에서 상위 행 삭제: 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿