function () 在 laravel 5.6 中不退出

function () does not exit in laravel 5.6

我正在使用资源路由。现在,我想添加另一条路线:

Route::resource('discussion', 'DiscussionsController');
Route::post('/discussion/reply/{id}',[
    'use' => 'DiscussionsController@reply',
    'as' => 'discussion.reply'
]);`

这里是回复功能,

public function reply($id)
{
    $discussion = Discussion::find($id);

    $reply = Reply::create([
        'user_id'=>Auth::id(),
        'discussion_id' => $id,
        'content'=> \request()->reply
    ]);

    return redirect()->back();
}

这是重定向到商店功能的blade。

<div class="card">

    <div class="card-body">
        Leave a reply

        <form method="post" action="{{route('discussion.reply', ['id'=> $discussion->id])}}">
            {{csrf_field()}}
            <div class="form-group">
                <textarea name="reply" class="form-control"></textarea>
            </div>

            <div class="form-group">
                <button type="submit" class="btn btn-primary ">Reply</button>
            </div>
        </form>
    </div>

问题是什么?

尝试改变路线的顺序

而不是

Route::resource('discussion', 'DiscussionsController');
Route::post('/discussion/reply/{id}',[
    'use' => 'DiscussionsController@reply',
    'as' => 'discussion.reply'
]);

使用那个

Route::post('/discussion/reply/{id}',[
    'use' => 'DiscussionsController@reply',
    'as' => 'discussion.reply'
]);
Route::resource('discussion', 'DiscussionsController');

我可能是错的,但乍一看我会说这是因为你的 Routeuse 而不是 uses

尝试更改

'use' => 'DiscussionsController@reply',

'uses' => 'DiscussionsController@reply',

其次,您不需要 \\request()->reply

改成request()->reply甚至request('reply')