这是我的路线:
/*
* Photos route group
*/
Route::group(['prefix' => 'admin/photos', 'middleware' => 'auth'], function(){
Route::get('/edit/{id}', 'PhotoController@edit')->name('photos.edit');
Route::get('/new', 'PhotoController@create')->name('photos.new');
Route::get('/', 'PhotoController@index')->name('photos.show');
Route::post('/', 'PhotoController@store')->name('photos.save');
Route::put('/update/{id}', 'PhotoController@update')->name('photos.update');
});
这是照片模型中的更新方法:
public function update(Request $request, Photo $photo, $id)
{
//return [$request->all(), $photo::all()];
return $id;
}
最后这是我的表单将被创建的地方
<form action="{{ route('photos.update', ['id' => $photo->id]) }}">
{{ method_field('put') }}
{{ csrf_field() }}
但是当我使用此配置时,laravel返回methodNotAllowedException
。当我将put
方法更改为post
时,同样会返回相同的结果,但当我将方法更改为get
时,页面将正常工作。
我在web.php
文件中对我的路线进行了重新排序,但问题又出现了。
你知道我的代码有什么问题吗?
注意:
我在其他模型中有一些其他更新方法,这些都没问题,这个问题仅针对此模型...
Thanks in Advance
答案 0 :(得分:0)
一直尝试简单
roures.php
Route::post('/photos/update', 'PhotoController@update');
view.blade.php
<form action="/photos/update" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
</form>
Controller.php这样
public function update(Request $request) {
//return [$request->all(), $photo::all()];
return redirect('home');
}