2017-03-08 1 views
0

사용자가보기에서 추가하거나 삭제할 수있는 동적 양식 요소 (예 : 책 제목)가 있습니다. 작성은 요청이 데이터베이스에 저장하기 위해 컨트롤러에 도착할 때 모든 책 모델이 새로운 것이기 때문에 간편합니다. 을 업데이트하는 동안 모든 책 모델을 그대로두고 수정하거나 새로 추가하면 updateOrCreate과 함께이 작업을 수행 할 수 있습니다.Laravel 5.x 동적 입력을 업데이트, 생성 또는 삭제하는 간결한 방법

이제 사용자가보기에서 책을 제거하도록 선택하면 문제가 발생합니다. Laravel 삭제 된 모델을 저장하려고 :

SQLSTATE [23000] : 무결성 제약 조건 위반 : 1048 'COLUMN_NAME'열이 '

updateCreateOrDelete 방법 또는이 비슷한 있는가 null 일 수 없습니다? DB에있는 모든 서적을 삭제하고 시스템을 감사 시스템으로 사용하는 경우 게으르며 권장되지 않기 때문에 다시 작성하기를 원하지 않습니다. 기본적으로

I 추가하거나 삭제할 수 있습니다 입력의 배열을 가지고 :

  1. 아무것도 다음 그들의 DB 항목을 업데이트 업데이트되는 경우;
  2. n을 추가 한 경우이 새로운 n 값을 만듭니다. m을 삭제하면
  3. , 다음, 당신은 당신의 제약 조건에 대한 관리를 수행해야하는 DB
+0

조금 먼 길을 갈 것입니다. – apokryfos

답변

1

에서 이러한 m 값을 삭제합니다. Laravel은 모델에 의존하는 것이 있으면 모델을 삭제하지 않습니다. 마이그레이션에서 delete on cascade를 사용하거나 종속성을 null로 허용하십시오.

+0

캐스케이드가 분명히 경로입니다. –

0

받은 오류는 특히 열이 Null을 허용하지 않기 때문에 발생합니다.

당신과 같이 테이블을 새로운 마이그레이션을 만들 변경하려는 것이이 문제를 해결하려면 다음 코드의

Schema::table('table', function ($table) { 
    $table->string('column_name')->nullable(); 
});