【发布时间】:2016-02-12 13:19:47
【问题描述】:
希望有人能帮忙。
在这个阶段,我的所有其他方法(编辑和新方法)都可以很好地处理受保护的路由。只是删除效果不好。 (尽管我确信我正在做的事情很愚蠢)。我已经通过将删除从路由组中删除并分配了中间件来删除身份验证,它成功地删除了配置(对象),因此操作正常工作。我尝试按照另一篇文章中的建议在萤火虫中检查它,我得到:
405 Method Not Allowed
Allow DELETE
Cache-Control no-cache, private
Connection close
Content-Type text/html
Date Wed, 11 Nov 2015 12:36:40 GMT
Host 127.0.0.1:8000
X-Powered-By PHP/5.5.9-1ubuntu4.14
我想让用户在创建新条目或编辑现有条目之前进行身份验证(同样用于删除)。
当我通过按下按钮尝试删除时,它会引导我进行身份验证/登录(laravel 的开箱即用快速启动身份验证),但是在成功登录后,地址栏中的 url 是:
127.0.0.1:8000/delete/48
显示:
MethodNotAllowedHttpException in RouteCollection.php line 219:
routes.php:
Route::get('/new', [
'as' => 'create',
'middleware' => 'auth',
'uses' => 'ConfigsController@getCreate'
]);
$router->group(['middleware' => 'auth'], function($router)
{
Route::get('{id}/edit', 'ConfigsController@edit');
Route::delete('/delete/{id}/', 'ConfigsController@getDL');
});
+--------+----------+-------------------+----------+-------------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-------------------+----------+-------------------------------------------------------+------------+
| | DELETE | delete/{id} | | App\Http\Controllers\ConfigsController@getDL | auth |
| | POST | new | | App\Http\Controllers\ConfigsController@postCreate | |
| | GET|HEAD | new | create | App\Http\Controllers\ConfigsController@getCreate | auth |
| | GET|HEAD | {id}/edit | | App\Http\Controllers\ConfigsController@edit | auth |
ConfigsController.php:
public function getCreate() {
return view('create');
}
public function edit($id)
{
$configs = Config::find($id);
return view('edit')
->with('configs', $configs);
}
public function getDL($id) {
$configs = Config::find($id)->delete();
return Redirect::to('/');
}
index.blade.php (edit & delete) & app.blade.php (new):
<ul class="nav navbar-nav">
<li><a href="{{ URL::route('create') }}">New</a></li>
</ul>
{!! Form::open(array('url' => '/delete/' . $config->id . '/', 'class' => 'pull-right')) !!}
{!! Form::hidden('_method', 'DELETE') !!}
{!! Form::submit('Delete this Config', array('class' => 'btn btn-warning')) !!}
{!! Form::close() !!}
<a class="btn btn-small btn-info" href="{{ URL::to('/' . $config->id . '/edit') }}">Edit this Config</a>
【问题讨论】:
标签: php laravel authentication