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