홈>
안녕하세요. 마이그레이션에서 관계를 정의하려고합니다.
자식이있을 때 부모 레코드가 삭제되지 않도록 삭제 제한을 사용하고 있습니다. 그러나 작동하지 않습니다. 예를 들어 에디션 (자식)이있는이 이벤트 테이블 (부모)이 있습니다. 에디션 테이블에서 event_id를 사용하고 있습니다.
onDelete('restrict')
와 함께
내 에디션 테이블에 event_id가 있습니다.
긴 레코드에 에디션 테이블의 하위 레코드가 있으면 이벤트 테이블에서 삭제하는 것을 제한해야합니까? 하지만 그 ..
다음은 두 테이블의 마이그레이션입니다
이벤트 (부모)
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateEventsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('events', function (Blueprint $table) {
//master table
$table->increments('event_id');
$table->string('name');
$table->text('full_name');
$table->text('description');
$table->tinyInteger('status');
$table->integer('created_by');
$table->integer('updated_by');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('events');
}
}
버전 (자식)
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateEditionsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('editions', function (Blueprint $table) {
$table->increments('edition_id');
$table->integer('event_id')->unsigned();
$table->string('name');
$table->dateTime('start')->nullable();
$table->dateTime('end')->nullable();
$table->enum('stage', ['Archived', 'Cancelled', 'Closed', 'Live', 'On-site', 'Pre-event', 'Sold out'])->nullable()->default('Pre-event');
$table->tinyInteger('status');
$table->integer('created_by');
$table->integer('updated_by');
$table->timestamps();
});
Schema::table('editions', function($table) {
$table->foreign('event_id')
->references('event_id')->on('events')
->onDelete('restrict')->onUpdate('restrict');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('editions');
}
}
- 답변 # 1
관련 자료
- php - 이 조건이 발생하면 Laravel 트랜잭션이 작동하지 않습니다
- eloquent - Laravel은 where () 및 페이지 매김과 함께 작동하지 않습니다
- eloquent - Laravel에서 여러 orWheres가 작동하지 않습니다
- Laravel 유효성 검사가 예상대로 작동하지 않았습니다
- 라 라벨 모델에서 중복 기본 키를 어떻게 제한 할 수 있습니까?
- php - Laravel 마이그레이션 onDelete () 쿼리 예외
- eloquent - Laravel 5의 구별이 제대로 작동하지 않습니다
- Laravel Blade @extends 및 @yield가 작동하지 않습니다
- javascript - laravel API와 로컬로 작동하지 않는 네이티브 페치 반응
- 라 라벨 기능 테스트 캐시 조롱이 작동하지 않습니다! cachemanager - : driver (), 그러나 기대치가 지정되지 않았습니다
- Laravel&Docker가 작동하지 않는 인형극
- amazon web services - AWS에 배포 할 때 laravel 앱이 작동을 멈춤
- javascript - laravel 58 - 창 스크롤시, 블레이드 템플릿에서 스크롤이 작동하지 않음
- mysql - "일대일"에서 작동하지 않는 캐스케이드 삭제 - sequelizejs
- javascript - 라 라벨에서 비밀번호 분실 UI가 제대로 작동하지 않습니다
- php - Laravel을 사용하여 JSON 파일을 MYSQL에 업로드하는 것이 작동하지 않습니다
- img src가 이미지를 표시하지 못함 Laravel 8
- php - laravel 마이그레이션 - 일반 오류 : 1215 외래 키 제약 조건을 추가 할 수 없습니다
- Laravel 8 Search with Pagination이 제대로 작동하지 않습니다
- php - 라 라벨 - orderby 관계 수집에서 작동하지 않음
관련 질문
- php artisan migrate im 오류를 사용하여 마이그레이션을 실행하려고 할 때
- php : laravel에서 whereBetween은 포함되어 있습니까?
- php : 현재 로그인 한 사용자를 제외한 모든 사용자를 laravel eloquent로 가져옵니다.
- php : 최신 xampp를 다운로드 한 후 laravel에 패키지를 설치할 수 없습니다.
- php : Laravel의 커서 문에 대한 원시 쿼리
- php : 라디오 버튼 값을 삽입 할 수 없습니다. 데이터베이스에. 어떻게 해결할 수 있습니까?
- php : Laravel 초보자-열망 로딩이 작동하지 않는 것 같습니까?
- php : 정적 페이지를위한 자동 Laravel 라우팅
- php : Laravel 8이 CSS 및 JS를로드하지 않습니다.
- php : laravel 8 return Connection to tcp : //mail.infomaniak.com : 465 Timed Out
외래 키 정의에서 누락 된 것으로 보이는 것은 인덱스를 추가하는 것입니다. 외래 키의 요구 사항이며 문제를 일으키는 원인 일 수 있습니다.
변경 시도
to
또한 열 정의 바로 뒤에 외래 키 정의를 추가 할 수 있으며 다른
와이즈 비즈Schema::table()
에 넣을 필요가 없습니다. 이 스레드에 따라 :따라서
를 사용하십시오DELETE
가 아님 그렇지 않으면 제약 조건을 수동으로 추가 할 수 있습니다.SoftDeletes