php - How to update exsiting row in database in laravel5 -


i new in laravel , want update existing row in database,but when click on send button in view (for example 127.0.0.1/laravel/public/article/update/3 ) encounter following error:

methodnotallowedhttpexception in routecollection.php line 201:

here code

route   route::get('article/edit/{id}','articlecontroller@edit');  route::get('article/update/{id}','articlecontroller@update'); 

articlecontroller   public function edit($id) {  $change = article::find($id);      return view('edit',compact('change'));   }   public function update($id, request $request) {        article::update($request->all());      return redirect('article');  } 

model   public $table = 'article';  protected $fillable = ['title' , 'body']; 

edit.blade.php   <h1>ویرایش بست {{$change->title}}</h1>   {!! form::model($change ,['method'=>'patch' , 'url'=>['article/update' , $change->id ]]) !!}  {!! form::label('title','عنوان') !!} {!! form::text('title') !!} <br>  {!! form::label('body','متن') !!} {!! form::textarea('body') !!}  <br> {!! form::submit('send') !!}  {!! form::close() !!}    @if($errors->any()) <ul class ='alert alert-danger'> @foreach($errors->all() $error)   <li>{{ $error }}</li>  @endforeach   </ul>  @endif 

the easiest way resolve routing issues laravel use 'artisan'.

http://laravel.com/docs/5.1/artisan

if use command:

php artisan route:list 

you'll see every possible route , http verb available use. error in routecollection can fix these issues looking @ app/http/routes.php file.

you defined route follows:

route::get('article/update/{id}','articlecontroller@update'); 

then call route via form follows:

{!! form::model($change ,['method'=>'patch' , 'url'=>['article/update' , $change->id ]]) !!} 

your routes.php definition not match form's patch method, you're getting method not allowed exception because patch route not defined.

you need line of code in routes.php file:

route::patch('article/update/{id}','articlecontroller@update'); 

i highly recommend using instead of defining each method individually:

route::resource('article', 'articlecontroller'); 

then run following command again artisan see routes created:

php artisan route:list 

Comments

Popular posts from this blog

python - pip install -U PySide error -

arrays - C++ error: a brace-enclosed initializer is not allowed here before ‘{’ token -

cytoscape.js - How to add nodes to Dagre layout with Cytoscape -