Bearbeiten und Aktualisieren von Daten in Laravel
Ich bin mit einigen Schwierigkeiten der Bearbeitung der Daten in Laravel. Hier ist die-Taste, um Bearbeiten anzeigen:
{{ Form::open(array('route' => array('edit_spk', 'id'=> $spk_data->id), 'method' => 'GET', 'style' => 'display:inline')) }}
<button class="btn btn-success btn-line btn-rect">
<i class="icon-pencil icon-white"></i> Edit
</button>
{{Form::close()}}
Hier ist die route:
Route::get('spk/edit/{id}', array('as'=>'edit_spk','uses'=>'SpkController@edit'));
Route::put('spk/update/{id}', array('as'=>'update_spk','uses'=>'SpkController@update'));
Hier ist der controller:
public function edit($id){
$spk = Spk::find($id);
$spk->distribution_code=Input::get('distribution_code');
$spk->destination=Input::get('destination');
$spk->hlr=Input::get('hlr');
$spk->first_iccid=Input::get('first_iccid');
$spk->last_iccid=Input::get('last_iccid');
$spk->quantity=Input::get('quantity');
return View::make('modals.edit-spk', compact('spk'));
}
public function update($id) {
$rules = array(
'distribution_code' => 'required',
'destination' => 'required',
'hlr'=> 'required',
'first_iccid' => 'required',
'last_iccid' => 'required',
'quantity' => 'required'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::to('modals.edit-spk')->withErrors($validator);
} else {
//store
$update = Spk::find($id);
$update->distribution_code=Input::get('distribution_code');
$update->destination=Input::get('destination');
$update->hlr=Input::get('hlr');
$update->first_iccid=Input::get('first_iccid');
$update->last_iccid=Input::get('last_iccid');
$update->quantity=Input::get('quantity');
$update->save();
//redirect
Session::flash('message', 'Successfully updated SPK !');
return Redirect::to('spk_view');
}
}
Und hier ist die Ansicht für die Daten aktualisieren :
@extends('dashboard.dashboard')
@section('content')
@if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div>
@endif
<h4> {{link_to('dashboard','Home');}} > {{link_to('spk_view','SPK');}} > Update SPK</h4><hr></hr>
<div class="panel panel-default">
<div class="panel-heading">
Update SPK
</div>
<div class="panel-body">
{{ Form::model($spk,array('method' => 'PUT', 'class'=>'form-horizontal','route'=>array('update_spk', $spk->id))) }}
<div class="form-group">
<label class="control-label col-lg-2">Distribution Code</label>
<div class="col-lg-4">
<div class="input-group">
<input class="form-control" name ="distribution_code" type="text" data-mask="M99/99/99/9999" />
<span class="input-group-addon">M99/99/99/9999</span>
</div>
</div>
<div class="col-lg-5">
{{ $errors->first('distribution_code',
'<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Anda belum mengisi data dengan benar !
</div>
') }}
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2">Destination</label>
<div class="col-lg-3">
<input type="text" name="destination" class="form-control" />
</div>
<div class="col-lg-4">
{{ $errors->first('destination',
'<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Anda belum mengisi data dengan benar !
</div>
') }}
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2">HLR</label>
<div class="col-lg-3">
<input type="text" id="hlr" name="hlr" class="form-control" />
</div>
<div class="col-lg-4">
{{ $errors->first('hlr',
'<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert"aria-hidden="true">×</button>
Anda belum mengisi data dengan benar !
</div>
') }}
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2">First ICCID</label>
<div class="col-lg-3">
<input type="text" id="first_iccid" name="first_iccid" class="form-control" />
</div>
<div class="col-lg-4">
{{ $errors->first('first_iccid',
'<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Anda belum mengisi data dengan benar !
</div>
') }}
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2">Last ICCID</label>
<div class="col-lg-3">
<input type="text" id="last_iccid" name="last_iccid" class="form-control" />
</div>
<div class="col-lg-4">
{{ $errors->first('last_iccid',
'<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Anda belum mengisi data dengan benar !
</div>
') }}
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2">Quantity</label>
<div class="col-lg-3">
<input type="text" id="quantity" name="quantity" class="form-control" />
</div>
<div class="col-lg-4">
{{ $errors->first('quantity',
'<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Anda belum mengisi data dengan benar !
</div>
') }}
</div>
</div>
<div class="form-actions no-margin-bottom" style="text-align:center;">
{{ Form::submit('Update SPK', array('class' => 'btn btn-primary btn-line btn-rect')) }}
</div>
{{Form::close()}}
</div>
</div>
@stop
Diese Ansicht funktioniert nicht und es kann nicht Holen Sie sich die ausgewählten Daten aus $id
in die form. Es ist wieder dieser Fehler:
"Undefined property: Illuminate\Database\Eloquent\Collection::$id (Ansicht: C:\XAMPP\htdocs\ims2\app\views\modals\edit-spk.blade.php)"
array(9) { ["id"]=> int(35) ["distribution_code"]=> string(14) "M04/20/01/2014" ["Ziel"]=> string(6) "Jaksel" ["hlr"]=> string(3) "114" ["first_iccid"]=> string(3) "123" ["last_iccid"]=> string(3) "456" ["Menge"]=> string(3) "200" ["created_at"]=> string(19) "2015-05-03 07:25:59" ["updated_at"]=> string(19) "2015-05-03 07:25:59" }
es könnte sein, das
Das Ergebnis immer noch dasselbe : array(9) { ["id"]=> int(35) ["distribution_code"]=> string(14) "M04/20/01/2014" ["Ziel"]=> string(6) "Jaksel" ["hlr"]=> string(3) "114" ["first_iccid"]=> string(3) "123" ["last_iccid"]=> string(3) "456" ["Menge"]=> string(3) "200" ["created_at"]=> string(19) "2015-05-03 07:25:59" ["updated_at"]=> string(19) "2015-05-03 07:25:59" } Aber, es wird nicht angezeigt in meinem Formular Aktualisieren.
wenn Sie ändern
immer noch Fehler, bro 🙁
es könnte sein, das
compact('spk')
versuchen 'route'=>array('update_spk', $spk[0]->id)
, wenn das nicht funktioniert, bitte {{dd($spk)}}
bevor Sie das Formular in der Ansicht und fügen Sie die gesamte Ausgabe.Das Ergebnis immer noch dasselbe : array(9) { ["id"]=> int(35) ["distribution_code"]=> string(14) "M04/20/01/2014" ["Ziel"]=> string(6) "Jaksel" ["hlr"]=> string(3) "114" ["first_iccid"]=> string(3) "123" ["last_iccid"]=> string(3) "456" ["Menge"]=> string(3) "200" ["created_at"]=> string(19) "2015-05-03 07:25:59" ["updated_at"]=> string(19) "2015-05-03 07:25:59" } Aber, es wird nicht angezeigt in meinem Formular Aktualisieren.
wenn Sie ändern
route'=>array('update_spk', $spk->id)
zu 'route'=>array('update_spk', $spk['id'])
tun Sie immer noch den Fehler? oder ist die form zu zeigen, aber seine leer?immer noch Fehler, bro 🙁
InformationsquelleAutor RodnovryJoshua | 2015-05-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
dd($spk)
nach$spk = Spk::find($id);
in die edit-Methode und fügen Sie die Ausgabe.Edit:
Den button sollte dann so Aussehen (keine form)
Controller:
Versuchen Sie dies und lassen Sie mich wissen, wenn der Fehler weiterhin besteht. Wenn dem so ist, ist es der exakt gleiche Fehler? Wenn nicht, bitte fügen Sie die neuen.
Tut mir Leid, aber ich habe nicht genug rep zu tun 🙁
Bieszczad ich verstehen, aber das posting Antworten und Kommentare erhalten Sie geflaggt und entfernt, weil es im Gegensatz zu den Q&A-format von Stack Overflow. Sie haben nur 13 Ruf Punkte zu gehen, bevor er das Privileg, so eine oder zwei gute Antworten bekommen wird Sie es in kürzester Zeit.
InformationsquelleAutor Pawel Bieszczad
Über den Fehler:
In Ihrer Ansicht, Sie habe dieses Stück code
den
$spk
variable ist ein beredtes Sammlung,, der zurückgegeben wird, auf dem controller. Greifen Sie auf $spk->id, was falsch ist, zugreifen zu können, müssen Sie ein einzelnes element in der Sammlung, um Sie zu BearbeitenMir erlauben, vereinfachen Sie Ihren code in der Zwischenzeit:
In Ihre route bestimmen Sie, welche Methode in der controller verarbeitet die Anfrage.
Schreiben Sie in Ihre Konsole ein:
SpkController
SpkContent FormRequest
Zumindest, auf diese Weise können Sie split-Validierung von der operation viel sauberer und wartbarer code
InformationsquelleAutor abr