본문 바로가기
MySql

MySQL 자동 증분 데이터베이스를 사용한 Laravel updateOrCreate

by 베이스 공부 2020. 11. 26.
반응형

내 목적은 값이있는 경우 업데이트하고 그렇지 않으면 양식을 제출 한 후 데이터베이스 테이블에 새 행을 삽입 하는 것입니다.

문제는 여기에있는 함수가 db 테이블에 새 열을 업데이트하는 대신 새 열을 추가 한다는 것입니다.

내 기능은 다음과 같습니다.

MyModel::updateOrCreate(array(
    'myField' => 'myValue',
))
    ->where('myAutoIncrementalField', '=', '5')
    ->where('myPrimaryKey', '=', '8');

내 데이터베이스 테이블은 다음과 같습니다.
1. myPrimaryKey (not auto incremental and is fillable on model.)
2. AutoIncrement 필드 (자동 증가이며 모델에서 채울 수 없습니다.)

미리 감사드립니다.

 

해결 방법

 

이 방법을 사용하는 방법은 다음과 같습니다.

Model::updateOrCreate(
   ['primary_key' => 8],
   ['field' => 'value', 'another_field' => 'another value']
);

첫 번째 매개 변수는 고유 한 필드 배열 또는 귀하의 경우 기본 키를 전달합니다. 고유하지 않은 필드는 PK와 함께 어떤 것을 전달하는 것처럼 여기에서 분명히 의미가 없습니다.

두 번째 매개 변수는 업데이트 / 작성해야하지만 고유 / pk 검색에서 무시되는 값의 배열입니다.

 

참조 페이지 https://stackoverflow.com/questions/27479339

 

 

반응형

댓글