Mam obiekt Set, który zawiera wiele elementów. Tak więc, podczas aktualizacji zestawów, formularz zawiera również pole do aktualizacji tego elementu. Zrobiłem to i działa dobrze, ale nie jestem pewien, czy jest to właściwy i najbardziej efektywny/elegancki sposób na zrobienie tego. Oto mój kod:Laravel Epoquent - Zapisz/Aktualizuj pokrewne One-to-Many Relationship Data
$set->fill(Input::all());
foreach (Input::get('course') as $course_id => $content) {
$item = $set->items->filter(function ($item) use ($course_id) {
return ($item->course_id == $course_id);
})->first();
$item->content = $content;
$set->items()->save($item);
}
$set->save();
Jak widać, dla każdej pozycji, ja zapętlony przez wszystkie wejścia (które mogą się różnić od tego, ile ma), przefiltrować go i zapisz wartość 1 o 1. Tak więc zapytanie jest wykonywane dla każdej iteracji. Używam filtra, aby nie musiał wykonywać kwerendy dla każdego czeku.
Moje pytanie brzmi, czy istnieje bardziej wydajny/elegancki sposób na zrobienie tego? Coś jak saveMany() może?
Tak widziałem, że myślę, że nie trzeba określonej kolekcji obiekt do przekazania do saveMany(). Możemy po prostu użyć prostej tablicy tak jak ty. Przetestowałem i zweryfikowałem, że działa. Dzięki. –