Ich ziehe mehrere Datensätze aus MySQL und durchläuft die Modellbindung und füllt alle Eingabefelder mit einigen Daten.Aktualisieren mehrerer Datensätze mit Laravel 5.3-Modellbindung
Jetzt kann ich 2 oder 10 oder alle 26 Felder ändern und die Update-Taste drücken. Ich möchte alle Datensätze aktualisieren. Nun, ich weiß nicht, wie $ id hier funktioniert? Normalerweise aktualisiere ich einen einzelnen Datensatz und ich habe $ ID, die ich finden und nur dieses Feld aktualisieren kann. Aber das ist hier nicht der Fall. Ich ziehe 13 Datensätze (oder 26 Felder). 13 Feld_1 und 13 Feld_2. Wie aktualisiert man alle?
mycode
Datenbank
Table
-id
-name
-field1 (updating this one)
-field2 (updating this one)
Routen
Route::get('/cat' , '[email protected]');
Route::patch('/cat/{$id}/update','[email protected]_update');
-Controller
public function cat(){
$cattfs = Catf::all();
return view('/cat',compact('cattfs'));
}
public function cat_update(Request $request, $id) // id = 1
{
$rules = array(
'field1' => 'required',
'field2' => 'required'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect()->back()->withErrors($validator);
} else {
$cat = Cattf::find($id); //This wont work :/
$cat ->field1 = Input::get('field1');
$cat ->field2 = Input::get('field2');
$cat ->save();
return redirect('/cat');
}
}
Ansichten
<div class="col-md-6" style="background-color:#fff">
<table class="table table-hover">
<thead>
<tr>
<th style="text-align: center">Product</th>
<th style="text-align: center">Pr</th>
<th style="text-align: center">Co</th>
</tr>
</thead>
<tbody>
@foreach ($cattos as $catto)
{!! Form::model($catto,[ 'method' =>'PATCH', 'url' => ['/cat/.$catto->id./update']]) !!}
<tr>
<td>{{$catto->name}}</td>
<td> {!! Form::text('field1' ,null , ['class'=>'form-control']) !!}</td>
<td> {!! Form::text('field2' ,null , ['class'=>'form-control']) !!}</td>
</tr>
@endforeach
<td colspan="3">
{!! Form::submit('UPDATE', ['class'=>'btn btn-primary btn-block']) !!}
{!! Form::close() !!}
</td>
</tr>
</tbody>
</table>
</div>
Momentaufnahme der Form
noch möglich ist verbindlich, dass soll zeigen, welche vorherigen Werte in der Datenbank sind? –