laravel显示此错误此路由不支持POST方法,支持的方法:GET,HEAD,PUT,GET

xmakbtuz  于 9个月前  发布在  其他
关注(0)|答案(5)|浏览(123)

laravel在我以create的形式提交时显示了这个错误“The POST method is not supported for this route.支持的方法:GET,HEAD,PUT,PART。“我在一个页面上工作parent.blade .php的形式出现在相同的页面路由:

Route::get('parents', 'ParentController@index'); 
Route::get('parents/create', 'ParentController@create'); 
Route::post('parents', 'ParentController@store'); 
Route::get('parents/{id}/edit', 'ParentController@edit'); 
Route::put('parents/{id}', 'ParentController@update'); 
Route::delete('parents/{id}', 'ParentController@destroy');

这些是控制器方法:

public function create()
{
    return view('admin.parent');
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */

public function store(Request $request)
{
    $parent = new Parent();
     $parent->nom = $request->input('nom');
     $parent->nom = $request->input('prenom');
     $parent->nom = $request->input('adresse');
     $parent->nom = $request->input('num-tel');
     $parent->nom = $request->input('email');
     $parent->nom = $request->input('login');
     $parent->nom = $request->input('password');
     $parent->save();
     return view('admin.parent');    
}
k10s72fa

k10s72fa1#

尝试

Route::resource('parents','ParentController')

叶片

商店

<form method="POST" action="{{route('parents.store')}}">
     {{ csrf_field() }}
     ...
     </form>
kqlmhetl

kqlmhetl2#

尝试更改web.php中的路由顺序

Route::get('parents', 'ParentController@index');
 Route::post('parents', 'ParentController@store')->name('parents.store');  
 Route::get('parents/create', 'ParentController@create'); 
 Route::get('parents/{id}/edit', 'ParentController@edit'); 
 Route::put('parents/{id}', 'ParentController@update'); 
 Route::delete('parents/{id}', 'ParentController@destroy');

在你看来

<form method="POST" action="{{route('parents.store')}}">
 {{ csrf_field() }}

 </form>
col17t5w

col17t5w3#

Route::post('parents', 'ParentController@store');
xtupzzrd

xtupzzrd4#

我还有这个

Route::get('/student/store', [StudentController::class, 'store'])->name('student.store');

我把它改成了

Route::post('/student/store', [StudentController::class, 'store'])->name('student.store');

你看我有get,我把它改成了post

xwmevbvl

xwmevbvl5#

所以你需要了解Laravel路由的循环。

Route::post('/any-url', 'CONTROLLER@functionToCAll')

这意味着在HTML端,您可以在Post部分中使用method=“POST”来触发

<form method="POST" action="{{route('YourRouteName')}}">
 {{ csrf_field() }}

 </form>

如果你想触发删除或更新功能的控制器,你必须包括
1.{{ method_field('PATCH')}} ->更新
1.{{ method_field('')}} ->删除
最好的使用方法是after tag

<form method="POST" action="{{route('YourRouteName')}}">
    {{ method_field('PATCH') }}

注意:您也可以使用Route::Any来提高效率

Route:any(['POST','GET','PUT'], 'CONTROLLR@Function');

相关问题