2016-08-04 3 views
0

User 모델과 UserInfo 모델을 가지고 있습니다. 그들은 일대일 관계입니다.Laravel : 매거진 할당량 지정 새 레코드 또는 업데이트로 돌아 가기

사용자가 가입하면 그는 앞으로 더 많은 정보가 담긴 매우 큰 양식을 작성합니다. 이는 UserInfo 모델로 표시되는 user_info 테이블에 포함되어 있습니다.

내가 현재 할이

$user->user_info()->create($request->all()); 

작동하지만이 두 번째로 실행되는 경우,이 같은 사용자에 대한 andother UserInfo 기록을 작성합니다.

사용자 정보 레코드가 이미이 사용자에 대한 존재하는 경우, 그것은 단지 updtes 있도록 내가 그것을 할 수있는 방법이있는 소재 기존 하나

이 같은 대량 할당 작업 할 수 updateOrCreate 같은 방법이 있습니까? UserInfo 레코드가 이미이 User에있는 경우

그래서, 그냥이 새 값

+1

updateOrCreate ([ 'id'=> $ user-> id], $ request-> all()); ' – jaysingkar

+0

위 쿼리를 시도하십시오 – jaysingkar

+0

@jaysingkar하지 않았습니다. 작업. 오류 :'updateOrCreate()는 배열 유형, 정수 여야합니다 .' –

답변

0

당신은 updateOrCreate() 방법을 사용하여 updateOrCreate 기능을 달성 할 수와 업데이트있다.
사용법 : 귀하의 경우

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

, 당신은 다음과 같은 방법으로 적합 사용할 수 있습니다 ['id'=>$user->id]의 ID 대신에

$user->user_info()->updateOrCreate(['id'=>$user->id],$request->all()); 

이 모델의 기본 키의 이름을 사용합니다.

+0

'[ 'id'=> $ user-> id]에있는 id 대신에 모델의 기본 키 이름을 사용하십시오. – jaysingkar

+0

고맙습니다. 그것은 일했다 :). 답변을 수정하여 작성한 댓글을 다른 사용자에게 포함 시키십시오. –