2016-11-03 8 views
0

이것은 까다로운 질문입니다. 내가 아는 한 최선을 설명하려고 애쓸뿐입니다. 나는 여행을하고 있으며, 사용자가 그 여행에서 복사 버튼을 클릭하기를 원합니다. 그러면 그 여행을 다시 복제 할 수 있으므로 사용자는 거대한 양식을 다시 채울 필요가 없습니다.trip_id 열을 업데이트하는 동안 테이블을 다른 세 개의 테이블에 복제하십시오. Laravel 5.3

여행 양식은 4 가지 모델 (테이블)로 저장됩니다.

임 지금 복제를 수행하는 방법이다 :

Trips Model

가 그럼 난 다른 3를 가지고 :

public function replicateTrip (Request $request, $slug, $id) { 

     $listing = $request->user()->listings()->where('slug', $slug)->first(); 
     $trip = $listing->trips()->where('id', $id)->first(); 


     $replicateTrip = Trip::find($trip->id); 
     $replicatebringToTrip = BringToTrip::where('trip_id', $id)->first(); 
     $replicateIncludedInPriceForTrip = IncludedPriceTrip::where('trip_id', $id)->first(); 
     $replicateNotIncludedInPriceForTrip = NotIncludedPriceTrip::where('trip_id', $id)->first(); 

     $newTask = $replicateTrip->replicate(); 
     $newTask2 = $replicatebringToTrip->replicate(); 
     $newTask3 = $replicateIncludedInPriceForTrip->replicate(); 
     $newTask4 = $replicateNotIncludedInPriceForTrip->replicate(); 

     $newTask->save(); 
     $newTask2->save(); 
     $newTask3->save(); 
     $newTask4->save(); 

     return redirect()->back(); 

    } 

을 그래서이 복제 된 여행이 주요 여행 테이블에 같은 모습입니다 그 여행 ID에서 데이터를 저장하는 다른 모델 (테이블). 그래서 예를 들면

여기에 데이터가 복제되는 것을 내 다른 테이블 : 당신이 볼 수 있듯이

What To Bring On Trip Table

는, 데이터가 성공적으로 복제,하지만은 "trip_id"열,이 경우 어떤 1259는 내가 복제 한 원래 여행과 여전히 동일합니다. 나는 새로운 복제 된 trip_id를 얻고 그것을 가지고있는 다른 3 개의 모델에 삽입 할 필요가있다. 이 경우 그래서, 두 번째 행은 1262 것 NOT 1259.

당신은 그것을 시도 할 수

답변

1

: 너무

public function replicateTrip (Request $request, $slug, $id) { 

    $listing = $request->user()->listings()->where('slug', $slug)->first(); 
    $trip = $listing->trips()->where('id', $id)->first(); 


    $replicateTrip = Trip::find($trip->id); 
    $replicatebringToTrip = BringToTrip::where('trip_id', $id)->first(); 
    $replicateIncludedInPriceForTrip = IncludedPriceTrip::where('trip_id', $id)->first(); 
    $replicateNotIncludedInPriceForTrip = NotIncludedPriceTrip::where('trip_id', $id)->first(); 

    $newTask = $replicateTrip->replicate(); 
    $newTask2 = $replicatebringToTrip->replicate(); 
    $newTask3 = $replicateIncludedInPriceForTrip->replicate(); 
    $newTask4 = $replicateNotIncludedInPriceForTrip->replicate(); 

    $newTask->save(); 

    $newTask2->trip_id = $newTask->id; 
    $newTask3->trip_id = $newTask->id; 
    $newTask4->trip_id = $newTask->id; 

    $newTask2->save(); 
    $newTask3->save(); 
    $newTask4->save(); 

    return redirect()->back(); 

} 
+0

, 스마트 사람, 감사 김 많이! – David