Php 函数()在laravel 5.6中不存在

Php 函数()在laravel 5.6中不存在,php,laravel,laravel-5,laravel-routing,laravel-5.6,Php,Laravel,Laravel 5,Laravel Routing,Laravel 5.6,我正在使用资源路径。现在,我想添加另一条路线: Route::resource('discussion', 'DiscussionsController'); Route::post('/discussion/reply/{id}',[ 'use' => 'DiscussionsController@reply', 'as' => 'discussion.reply' ]);` 这是回复功能 public function reply($id) { $dis

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

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();
}
这是重定向到存储功能的刀片服务器

<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>

留话
{{csrf_field()}}
回复

有什么问题吗?

尝试更改路线的顺序

而不是

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');

您是否在路由中使用中间件? 如果是,请检查您可能正在使用“使用”键,而不是“使用”。 例如:


或者,您可以只传递控制器名称和函数作为第二个参数,而不使用基于键值的数组。

我可能是错的,但从一眼看,我会说这是因为您对
路线使用
而不是
使用

试着改变

'use' => 'DiscussionsController@reply',


其次,您不需要使用带有
\request()->reply的
\


将其更改为
request()->reply
甚至
request('reply')

您得到的确切错误是什么?你能包括堆栈跟踪吗?我没有否决你的答案,但在这种情况下,路由顺序无关紧要的原因是因为你有第三个uri段,这样Laravel就会知道你没有试图到达最多只有2个uri段的资源路由之一。仍然不起作用。路线行动中有关闭,为什么投票被否决?如果你打算否决一个答案,你至少应该解释一下你为什么这么做。
'use' => 'DiscussionsController@reply',
'uses' => 'DiscussionsController@reply',