1

我正在尝试从按钮打开页面,但我需要发送按钮所在项目的 ID。对于上下文,这是一个讨论论坛页面,在用户破折号中,他们会看到他们可以评论的论坛每个底部都有一个按钮,我需要发送的是论坛 ID,这样当他们点击按钮时,它会将他们带到正确的论坛视图。

我怎样才能做到这一点?

我正在尝试不同的方式

<el-button type="primary" @click="submit(f.id)">
    Answer
</el-button>

submit($id) {
    var link = 'comments/' + $id;

    this.$inertia.visit('comments/' + $id, {
        $id,
    });
},
<inertia-link class="el-button el-button--warning"
    :href="'comments/' + f.id">
        Answer
</inertia-link>

在我的路线 web.php

Route::resource('comments', 'ReplyController');
Route::get('comments/{id}', 'ReplyController@index');

控制器中的索引

public function index($id)
{
    $forum = DiscussionForum::where('id', $id)
        ->with('comment', 'user')->first();
    $comment = Reply::with('discussionForum', 'user')
        ->where('discussion_forum_id', $forum->id)
        ->orderByDesc('updated_at')->get();

    return Inertia::render('Forum/Comment.vue', [
        'forum' => $forum,
        'comments' => $comment
    ]);
}

这不起作用,重定向在主页内显示一个空白窗口?如何正确发送论坛 ID?

4

2 回答 2

3

最好的方法是为路由添加一个名称,这样:

Route::get('comments/{id}')->name('comments')->uses('ReplyController@index');

然后你可以通过id这种方式传递你的惯性链接:

<inertia-link class="el-button el-button--warning"
    :href="route('comments', { f.id })">
        Answer
</inertia-link>

如文档中所述,这种方式可以与 Ziggy 一起使用。 https://inertiajs.com/routing

于 2019-11-29T07:51:45.503 回答
0

在此处使用发射功能:https ://vuejs.org/v2/guide/components-custom-events.html

像这样的东西:

yourMethod() {
  this.$emit(
    "someName",
    this.id
  );
}
于 2019-11-13T16:10:41.920 回答