我已经使用Laravel创建了一个基本博客,然后当我尝试将删除方法添加到' show'查看,但在我确认删除后,没有任何进一步发生。
路线如下:
DELETE | articles/{articles} | articles.destroy | App\Http\Controllers\ArticlesController@destroy
我的代码如下所示:
在名为' show'的视图中,显示所选文章,下面我想添加如下链接:
{!! link_to_action('ArticlesController@destroy', 'Delete Article', $article->id, ['method'=>'DELETE', 'class'=>'btn btn-danger', 'onClick'=>'return confirm("Are you sure you want to delete this item?")']); !!}
在“文章控制器”中,我写过“销毁”字样。功能就像:
public function destroy(Article $article) {
$article->delete();
return redirect('articles')->with([
'flash_message' => 'Article successfully deleted.',
'flash_message_important' => 'true',
]);
}
答案 0 :(得分:3)
问题在于link_to_action
,而Laravel 5中未包含该问题。请参阅this post。
要使用link_to_route帮助程序,您需要提取"laravelcollective/html": "~5.0"
包。
答案 1 :(得分:0)
您正在删除请求参数中传递$article->id
。并且您正尝试在Article
方法中检索destroy()
对象。那是错的。
修改您的销毁方法,如下所示
public function destroy($article_id)
{
Article $article = Article::find($article_id);
if ($article != null) {
$article->delete();
return redirect('articles')->with([
'flash_message' => 'Article successfully deleted.',
'flash_message_important' => 'true',
]);
}
}
它会起作用。