首页 > 解决方案 > 我在使用 laravel8 添加新回复时遇到问题

问题描述

在提问之前,这是我的代码

Show.blade.php

@foreach ($comments as $comment)
    @if ($comment->post_id == $post->id)
    .....
        <form action="{{ route('createreply', ['rid' => $comment->id]) }}" method="POST">
            @csrf
            <input type="text" class="form-control" name="replyContent" id="replyContent" style="color:white" />
            <button type=" submit" style=" color :lavender " class="btn btn-secondary">comment</button>
        </form>
    ....
    @endif
@endforeach

(((评论为原创评论,我回复评论的答案))

web.php(路由)

Route::post('/replycreate', [CommentController::class, 'createReply'])->name('createreply');

我的控制器(评论)

public function createReply(Request $request, $rid)
{
    $reply = new Reply();

    $reply->replyContent = $request->replyContent;
    $reply->user_name = Auth::user()->name;
    $reply->comment_id = $rid;

    dd($reply);

    $reply->save();

    return redirect()->back();
}

我在重新回复时遇到问题,我的代码返回错误,它说

函数 App\Http\Controllers\CommentController::createReply() 的参数太少,1 在第 54 行的 C:\Users\ALSACE\post-app\vendor\laravel\framework\src\Illuminate\Routing\Controller.php 中传递正好 2 预期

我坚持我使用了两个参数,但是发生了这种错误。

所以我坚持使用dd($reply)dd()甚至无法完成。

你可以猜到$rid是空的..但同样Show.blade.php,我用过$comment没有问题,所以我认为我不会有问题。

请帮助新的 Laravel 学生!

标签: phplaravellaravel-bladelaravel-8

解决方案


您的createReply方法需要 2 个参数,但您的路线中没有变量。您必须将路线更改为:

Route::post('/replycreate/{rid}', [CommentController::class, 'createReply'])->name('createreply');

推荐阅读