首页 > 解决方案 > [Route: topic.index] [URI: topic/{id}/group] 缺少必需的参数

问题描述

我想问当我删除一个需要重定向回topic.index的主题时如何解决这个错误,但这是错误的

(缺少 [Route: topic.index] [URI: topic/{id}/group] 所需的参数。)

下面显示一些代码 01. 在TopicController.

我尝试在从 Group 的 id 到已删除的 Topic 的 id 之间添加$topic follow show some code 02.它的TopicController成为404 not found和 idtopic/{id}/group

web.php中

Route::get('/topic/{id}/group', 'TopicController@index')->name('topic.index');

01.在主题控制器中

class TopicController extends Controller
{    
    public function index($id)
    {
        $group = Group::findOrFail($id);
        $topics = Topic::where('group_id', $id)->orderBy('created_at', 'desc')->paginate(5);
        return view('topic.index', compact('group', 'topics'));
    }

    public function destroy( Topic $topic)
    {
        if ($topic != null) {
           $topic->delete();
           return redirect()->route('topic.index') ;     //*******
        }
    }
}

02.在主题控制器中

class TopicController extends Controller
{  
    public function index($id)
    {
        $group = Group::findOrFail($id);
        $topics = Topic::where('group_id', $id)->orderBy('created_at', 'desc')->paginate(5);
        return view('topic.index', compact('group', 'topics'));
    }

    public function destroy( Topic $topic)
    {
        if ($topic != null) {
           $topic->delete();
           return redirect()->route('topic.index',$topic) ;     //*******
        }
    }
}

删除主题后,我需要重定向回topic.index

我希望有人可以帮助我,我希望你能理解我的信息

标签: phplaravel

解决方案


您正在尝试重定向回刚刚删除的主题,这没有意义,您还需要$id该组的一个,而不是来自该主题,因此请尝试以下操作:

public function destroy( Topic $topic)
{

    if ($topic) {
       $group = $tropic->group_id;

       $topic->delete();
       return redirect()->route('topic.index', $group);
    }

    return redirect()->back();
}

推荐阅读