sksmsWKd
sksmsWKd

Reputation: 185

i'm having trouble with adding new replies using laravel8

Before question , This is my code

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

(( comment is original comment, and i made reply for answer of comment ))

web.php (route)

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

my controller (comment)

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();
}

I have problem with making re-reply, and my code returns error and it says

Too few arguments to function App\Http\Controllers\CommentController::createReply(), 1 passed in C:\Users\ALSACE\post-app\vendor\laravel\framework\src\Illuminate\Routing\Controller.php on line 54 and exactly 2 expected

I tought i had used two argument , but this kind of error occurs.

so i tought using dd($reply), dd() can't even complete.

you can guess $rid is empty .. but in the same Show.blade.php , I had used $comment with no problem so i think i can not be problem.

plz help with newbe Laravel student!!

Upvotes: 0

Views: 57

Answers (2)

aynber
aynber

Reputation: 23011

You forgot to add the id to the route itself. If you're going to require it in the function parameters, then it needs to be added on the route URL.

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

Upvotes: 1

Rouhollah Mazarei
Rouhollah Mazarei

Reputation: 4153

Your createReply method expect 2 arguments, BUT you don't have variable in your route. You must change the route to:

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

Upvotes: 1

Related Questions