laravel 5.2 RouteCollection.php 第 161 行中的 NotFoundHttpException
laravel 5.2 NotFoundHttpException in RouteCollection.php line 161
这是堆栈上非常常见的问题 overflow.I 尝试了其中的几个,但那些不适用于我的场景。
我尝试将编辑数据集传递给数据库,但出现类似错误
RouteCollection.php 第 161 行 中的 NotFoundHttpException
在 edit.blade.php 中,我传递了 PUT 方法,但检查 Inspect 然后他们显示 Request Method:GET.请帮帮我
edit.blade.php
<html>
<body>
<form method="PUT" action="{{ URL::to('phonebook/update/$data->id') }}" >
<input type="text" hidden name="id" value="{{$data->id}}"/>
<input type="text" name="phoneNo" value="{{$data->phoneNo}}"/>
<input type="text" name="email" value="{{$data->email}}" />
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="Save"/>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
</body>
PhonebookController.php
public function edit($id)
{
$data = Phonebooks::find($id);
return view('phonebook.edit', compact('data'));
}
public function update(Request $request, $id)
{
echo"test";
}
routes.php
Route::resource('student', 'StudentController');
Route::post('phonebook', 'PhonebookController@store');
Route::resource('phonebook', 'PhonebookController');
Route::put('phonebook/update','PhonebookController@update');
由于 HTML 表单只支持 POST 和 GET 方法,PUT 和 DELETE 方法应该通过向您的表单添加 _method 隐藏字段来欺骗,如下所示:
<html>
<body>
<form method="POST" action="{{ URL::to('phonebook/update/$data->id') }}" >
<input name="_method" type="hidden" value="PUT">
<input `enter code here`type="text" hidden name="id" value="{{$data->id}}"/>
<input type="text" name="phoneNo" value="{{$data->phoneNo}}"/>
<input type="text" name="email" value="{{$data->email}}" />
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="Save"/>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
</body>
您的 routes.php 文件似乎也没有 /phonebook/update/{{ID}}
的条目
Route::put('phonebook/update/{id}','PhonebookController@update');
应该做
您需要像 POST
那样使用表单方法,因为您在隐藏输入字段中指定了 PUT。
<form method="POST" action="{{ URL::to('phonebook/update/$data->id') }}" >
将您的表单更改为
<html>
<body>
<form method="POST" action="{{ route('phoneUpdate', $data->id ) }}" >
{{ method_field('PUT') }}
{{ csrf_field() }}
<input type="text" name="phoneNo" value="{{$data->phoneNo}}"/>
<input type="text" name="email" value="{{$data->email}}" />
<input type="submit" value="Save"/>
</form>
</body>
你去
的路线
Route::resource('student', 'StudentController');
Route::post('phonebook', 'PhonebookController@store');
Route::resource('phonebook', 'PhonebookController');
Route::put('phonebook/update/{$id}','PhonebookController@update')->name('phoneUpdate');
更多关于NAMED ROUTES
更新:
或者,由于您使用的是 RESOURCE 控制器,您甚至不需要指定 PUT
路由。资源控制器已经为您提供 PUT
路由
path - phonebook/{$id}
route name - phonebook.update
所以你也可以像这样改变你的表格
<html>
<body>
<form method="POST" action="{{ route('phonebook.update', $data->id ) }}" >
{{ method_field('PUT') }}
{{ csrf_field() }}
<input type="text" name="phoneNo" value="{{$data->phoneNo}}"/>
<input type="text" name="email" value="{{$data->email}}" />
<input type="submit" value="Save"/>
</form>
</body>
并像这样从路线中删除 put
:
Route::resource('student', 'StudentController');
Route::post('phonebook', 'PhonebookController@store');
Route::resource('phonebook', 'PhonebookController');
这是堆栈上非常常见的问题 overflow.I 尝试了其中的几个,但那些不适用于我的场景。 我尝试将编辑数据集传递给数据库,但出现类似错误 RouteCollection.php 第 161 行 中的 NotFoundHttpException 在 edit.blade.php 中,我传递了 PUT 方法,但检查 Inspect 然后他们显示 Request Method:GET.请帮帮我
edit.blade.php
<html>
<body>
<form method="PUT" action="{{ URL::to('phonebook/update/$data->id') }}" >
<input type="text" hidden name="id" value="{{$data->id}}"/>
<input type="text" name="phoneNo" value="{{$data->phoneNo}}"/>
<input type="text" name="email" value="{{$data->email}}" />
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="Save"/>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
</body>
PhonebookController.php
public function edit($id)
{
$data = Phonebooks::find($id);
return view('phonebook.edit', compact('data'));
}
public function update(Request $request, $id)
{
echo"test";
}
routes.php
Route::resource('student', 'StudentController');
Route::post('phonebook', 'PhonebookController@store');
Route::resource('phonebook', 'PhonebookController');
Route::put('phonebook/update','PhonebookController@update');
由于 HTML 表单只支持 POST 和 GET 方法,PUT 和 DELETE 方法应该通过向您的表单添加 _method 隐藏字段来欺骗,如下所示:
<html>
<body>
<form method="POST" action="{{ URL::to('phonebook/update/$data->id') }}" >
<input name="_method" type="hidden" value="PUT">
<input `enter code here`type="text" hidden name="id" value="{{$data->id}}"/>
<input type="text" name="phoneNo" value="{{$data->phoneNo}}"/>
<input type="text" name="email" value="{{$data->email}}" />
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="Save"/>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
</body>
您的 routes.php 文件似乎也没有 /phonebook/update/{{ID}}
的条目Route::put('phonebook/update/{id}','PhonebookController@update');
应该做
您需要像 POST
那样使用表单方法,因为您在隐藏输入字段中指定了 PUT。
<form method="POST" action="{{ URL::to('phonebook/update/$data->id') }}" >
将您的表单更改为
<html>
<body>
<form method="POST" action="{{ route('phoneUpdate', $data->id ) }}" >
{{ method_field('PUT') }}
{{ csrf_field() }}
<input type="text" name="phoneNo" value="{{$data->phoneNo}}"/>
<input type="text" name="email" value="{{$data->email}}" />
<input type="submit" value="Save"/>
</form>
</body>
你去
的路线Route::resource('student', 'StudentController');
Route::post('phonebook', 'PhonebookController@store');
Route::resource('phonebook', 'PhonebookController');
Route::put('phonebook/update/{$id}','PhonebookController@update')->name('phoneUpdate');
更多关于NAMED ROUTES
更新:
或者,由于您使用的是 RESOURCE 控制器,您甚至不需要指定 PUT
路由。资源控制器已经为您提供 PUT
路由
path - phonebook/{$id}
route name - phonebook.update
所以你也可以像这样改变你的表格
<html>
<body>
<form method="POST" action="{{ route('phonebook.update', $data->id ) }}" >
{{ method_field('PUT') }}
{{ csrf_field() }}
<input type="text" name="phoneNo" value="{{$data->phoneNo}}"/>
<input type="text" name="email" value="{{$data->email}}" />
<input type="submit" value="Save"/>
</form>
</body>
并像这样从路线中删除 put
:
Route::resource('student', 'StudentController');
Route::post('phonebook', 'PhonebookController@store');
Route::resource('phonebook', 'PhonebookController');