【发布时间】:2017-11-29 03:50:28
【问题描述】:
我对 Laravel 框架有点陌生,我正在构建一个简单的博客。我可以创建博客、显示博客并显示所有博客的概览。现在我想删除一个博客。因此,我在视图中创建了一个删除按钮,其中包含一个路由链接,该链接也将传递文章的 ID。然后,在我的路由文件中,我指定了一个删除请求和一个控制器方法。在该方法中,我找到了 id 并尝试删除具有我在路由/视图中指定的 id 的行。
这不起作用。它不是激活destroy/delete 方法而是显示文章而不是删除它,并激活show 方法而不是delete 方法。谁能帮帮我,我做错了什么?
View.blade.php
<a href="{{route('nieuws.destroy', ['id' => $blog->id])}}" onclick="return confirm('Weet je dit zeker?')">
<i class="fa fa-trash"></i>
</a>
路线
Route::group(['middleware' => 'auth'], function () {
Route::get('/aanvragen', 'aanvragenController@index')->name('aanvragen.index');
Route::get('/logout' , 'Auth\LoginController@logout')->name('logout');
Route::get('/nieuws/toevoegen', 'blogController@create')->name('blogs.add');
Route::post('/nieuws/store', 'blogController@store')->name('nieuws.store');
Route::delete('/nieuws/{id}', 'blogController@destroy')->name('nieuws.destroy');
});
Route::get('/nieuws', 'blogController@index')->name('blogs.index');
Route::get('/nieuws/{blog}', 'blogController@show')->name('blogs.show');
控制器方法
删除/销毁
public function destroy($id) {
$blog = Blog::find($id);
$blog->delete();
return redirect('/nieuws');
}
显示
public function show(Blog $blog) {
dd('show');
return view('blogs.show', compact('blog'));
}
【问题讨论】:
-
@Gijsberts 您可能想重新检查 kunal 的答案。允许 GET 请求以任何方式更改数据是不好的做法和安全风险。
标签: php laravel laravel-5 laravel-5.4