2016-11-03 8 views
0

Это своего рода сложный вопрос. Я пытаюсь объяснить это как можно лучше. У меня есть поездка, и я хочу, чтобы пользователи нажимали кнопку копирования в этой поездке, которая просто повторит эту поездку, чтобы пользователи не могли снова заполнить огромную форму.Реплицировать таблицу на 3 другие таблицы при обновлении столбца trip_id - Laravel 5.3

Форма поездки сохраняет до 4 моделей (таблиц).

Это как Im делает тиражирование прямо сейчас:

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(); 

    } 

Так вот как реплицируемая поездка выглядит на главной поездок таблице:

Trips Model

Тогда я получил 3 других различные таблицы (таблицы), которые он сохраняет данные из этого идентификатора поездки.

Так, например, вот моя другая таблица, данные реплицируются:

What To Bring On Trip Table

Как вы можете видеть, данные реплицируются успешно, НО, колонка «trip_id», который в этом случае составляет 1259, по-прежнему совпадает с первоначальной поездкой, которую я воспроизвел. Мне нужно получить новый реплицированный trip_id и вставить его в другие 3 модели, которые у меня есть. Так что в этом случае вторая строка будет 1262 НЕ 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