Ich wollte mehrere Zeilen in der Datenbank aktualisieren und haben einen Weg gefunden, es zu tun. aber es scheint nicht der beste Weg, es zu tun, da es in mehreren Aufrufen im Moment macht.Update multiple Zeilen in Laravel 4
Ich wollte jetzt, wenn es einen besseren Weg gibt, dies zu tun.
Die homecontroller
mit der updatePersons
Funktion:
<?php
class HomeController extends BaseController {
public function index()
{
$persons = Person::get();
return View::make('hello')
->with(compact('persons'));
}
public function updatePersons()
{
$persons = Person::get();
foreach ($persons as $person) {
$person->fname = Input::get('fname'.$person->id);
$person->lname = Input::get('lname'.$person->id);
$person->save();
}
return Redirect::route('home')->with('succes', 'Siden er opdateret');
}
}
die Ansicht mit der Form
@extends('layouts.master')
@section('content')
<div class="container">
<ul class="list-group">
{{ Form::open(array('route'=>'personUpdate', 'method' => 'post')) }}
@foreach ($persons as $person)
<li class="list-group-item">
{{ Form::text('fname'.$person->id,$person->fname,array('class'=>'form-control', 'placeholder'=>'fname')) }}
{{ Form::text('lname'.$person->id,$person->lname,array('class'=>'form-control', 'placeholder'=>'lname')) }}
</li>
@endforeach
<li class="list-group-item">
<div class="box-footer">
<button type="submit" class="btn btn-primary">Update</button>
</div>
</li>
{{ Form::close() }}
</ul>
</div>
</div>
@stop
Die Routen:
<?php
Route::get('/', array('as'=>'home', 'uses'=>'[email protected]'));
Route::post('/', array('as'=>'personUpdate', 'uses'=>'[email protected]'));
Ich habe versucht, die savemany()
Funktion auf $persons
zu verwenden nach der foreach l oop in updatePersons()
, aber ohne Ergebnisse.