2016-08-31 1 views
-1

ich mit Laravel Rahmen make Methode und Funktion für Update-Zeile in der Datenbank, aber gefunden Fehler MethodNotAllowedHttpException und ich versuche, es zu handhaben, aber kann immer noch nicht hier in Form edit.blade.php:Laravel Datenbank kann nicht aktualisiert werden und Fehler MethodNotAllowedHttpException

 {{ Form::model($datas, array('route' => array('barang.update' , $datas->id) , 'method'=> 'PATCH'))}} 
      <div class="box-body"> 
      <div class="form-group"> 
      {{ Form::label('Nama Barang', 'Nama Barang :') }} 
      {{ Form::text('nama_barang',null,['class'=>'form-control']) }} 

      </div> 
      <div class="form-group"> 
       {{ Form::label('Harga Barang', 'Harga Barang :') }} 
       <div class="input-group"> 
       <span class="input-group-addon">Rp</span> 
       {{ Form::text('harga_barang',null,['class'=>'form-control']) }} 
       <span class="input-group-addon">.00</span> 
       </div> 
      </div> 

      <div class="form-group"> 
       {{ Form::label('Jumlah Barang', 'Jumlah Barang :') }} 
       <div class="input-group"> 
       {{ Form::text('jumlah',null,['class'=>'form-control']) }} 
       <span class="input-group-addon">Item</span> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label for="exampleInputFile">Foto Barang</label> 
       <input type="file" id="exampleInputFile"> 

       <!-- <p class="help-block">Example block-level help text here.</p> --> 
      </div> 
      </div> 
      <!-- /.box-body --> 

      <div class="box-footer"> 
      {{ Form::submit('Simpan', ['class' => 'btn btn-primary']) }} 
      <button type="submit" class="btn btn-success">Simpan dan Publikasi</button> 
      <button type="submit" class="btn btn-default">Batal</button> 
      </div> 
     {{ Form::close() }} 

hier in Controller-BarangContr.php:

public function edit($id) 
    { 
     $datas = BarangModel::find($id); 
     return View::make('admin/barang/edit', compact('datas')); 
    } 

    public function update($id) 
    { 

     $datas = new BarangModel; 
     $datas -> nama_barang = Input::get('nama_barang'); 
     $datas -> harga_barang = Input::get('harga_barang'); 
     $datas -> jumlah  = Input::get('jumlah'); 
     $barang = BarangModel::find($id); 
     $barang->update($datas); 

     return $this->index(); 
    } 

hier in Route Code route.php:

Route::resource('barang', 'BarangContr'); 
Route::get('/barang/edit/{id}', '[email protected]'); 
Route::post('/barang/update/{id}', array('as' => 'barang.update' , 'uses' => '[email protected]')); 

hier in BarangModel.php Code:

<?php 

use Illuminate\Database\Eloquent\Model; 

class BarangModel extends Model 
{ 
    protected $table = 'tb_barang'; 
    protected $primarykey = 'id'; 
    protected $fillable = ['kode_barang', 'nama_barang', 'harga_barang', 'jumlah']; 
} 

Dank vor für Ihre Antwort :)

+0

ändere deine Route :: post ('/ barang/update/{id}' zu Route :: patch ('/ bara ... – Carlos

Antwort

0

Da Sie Patch verwenden zu Ich würde vorschlagen, Ihre Route zu ändern, um die folgenden

Route::post('/barang/update/{id}', array('as' => 'barang.update' , 'uses' => '[email protected]')); 

zu

Route::patch('/barang/update/{id}', array('as' => 'barang.update' , 'uses' => '[email protected]')); 

Auch sollten Sie Ihren Controller zu folgenden ändern:

$datas = BarangModel::find($id); 
    $datas->nama_barang = Input::get('nama_barang'); 
    $datas->harga_barang = Input::get('harga_barang'); 
    $datas->jumlah  = Input::get('jumlah'); 
    $datas->save(); 

    return $this->index(); 
+0

danke, schon fertig, es muss das gleiche' Patch 'Methode in der Route und Form, noch einmal danke –

0

Sie method="PATCH" gesetzt haben in Ihrem Formular, während Ihre Route für Methode POST ist. HTML5-Formulare akzeptieren nur GET oder POST Methoden. Bitte versuchen Sie es erneut, indem Sie das Methodenattribut entfernen (so dass es standardmäßig auf POST zurückgesetzt wird).

By the way, durch Verwendung von versteckten Eingängen andere Routen Methoden Laravel kann: https://laravel.com/docs/5.3/routing#form-method-spoofing

+0

danke für deine info, –

Verwandte Themen