2016-11-04 3 views
0

내가 일대일 삽입을 위해 이러한 코드까지 온 DB 트랜잭션을 생성?합니까 모델 :

3 대 1 통화?

친절한 상담에 감사드립니다.

답변

1

만들고, 당신이 laravel를 사용하는 가정 않는 트랜잭션, 당신은 단지 하나의 새로운 인스턴스를 생성 할이처럼 채울 수 원하는 경우 :

$anotherPet = new \App\Pet; 
$anotherPet->fill($data); 
$anotherUser = \App\User::create($data); // transaction is made here; mandatory to have an id for your association 

$anotherPet->user()->associate($anotherUser); // no transaction 
$anotherPet->save(); // transaction is made here 

당신이이 쿼리 대신 3가 이런 식으로, 외래 키 제약 조건없이 단일 쿼리를 만들 수있는 방법이 없습니다.

+0

그들은 2 개의 인스턴스이고 외래 키 제약 조건이 포함되어 있기 때문에 그 패턴을 생각해 냈습니다 : ( 'fill()'과 연관시킬 수 있습니까? –

+0

이 경우 객체를 저장해야합니다 연결하기 전에 연결하려고합니다. 그렇지 않으면 기본 키가 없습니다. 첫 번째 대답이 업데이트되었습니다. –