尝试删除文章时,Laravel5 link_to_action不起作用

时间:2016-11-11 14:40:35

标签: javascript php laravel laravel-5

我已经使用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',
        ]);
    }

2 个答案:

答案 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',
        ]);
    }
}

它会起作用。