Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有错误问题:此路由不支持GET方法。支持的方法:POST_Php_Laravel - Fatal编程技术网

Php 有错误问题:此路由不支持GET方法。支持的方法:POST

Php 有错误问题:此路由不支持GET方法。支持的方法:POST,php,laravel,Php,Laravel,存在错误问题: 此路由不支持GET方法。支持的方法:POST 我把在路线张贴方法和形式,但idk为什么它仍然显示错误 //route Route::post('posts/{post}/comment', 'CommentController@store'); //controller class CommentController extends Controller { public function store(Request $request, $post_id) {

存在错误问题:

此路由不支持GET方法。支持的方法:POST

我把在路线张贴方法和形式,但idk为什么它仍然显示错误

//route
Route::post('posts/{post}/comment', 'CommentController@store'); 

//controller
class CommentController extends Controller
{
    public function store(Request $request, $post_id)
    {
        $this->validate($request,[
            'content' => 'required',
        ]);
        //$post = Post::find($post_id);
        $comment = new Comment;
        $comment->content = $request->input('content');
        $comment->user_id = auth()->user()->id;
        //$comment->post()->associate($post);
        $comment->save();

        return redirect('/posts')->with('success','Post Created');
    }
}

//form
{{ Form::open(['method' => 'POST','action' => ['CommentController@store', $post->id]]) }}
<div class="row">
    <div class="col-md-12">
        {{ Form::label('comment', "Comment:") }}
        {{ Form::textarea('content', null, ['class' => 'form-control']) }}
        {{ Form::submit('Add Comment', ['class' => 'btn btn-success']) }}
    </div>
</div>
{{ Form::close() }}

当我在Posts/show视图中按下添加新评论的按钮时,我想将我发送到需要发送的地方,但它只会给我一个错误。

您是否尝试过
公共功能存储中的
$post
(请求$Request,$post\u id)

您是否尝试过
公共功能存储中的
$post
(请求$Request,$post\id)
??

请按以下方式更改。请确保无论何时在路由中使用
资源
,它都应该位于其他相关路由的下方。当调用路由时,它将调用
posts/{$id}/edit
它是
get
方法。欲了解更多信息,请查看下面的博客。


请更改如下。请确保无论何时在路由中使用
资源
,它都应该位于其他相关路由的下方。当调用路由时,它将调用
posts/{$id}/edit
它是
get
方法。欲了解更多信息,请查看下面的博客。


首先将@csrf添加到表单中,看看接下来会发生什么。我认为您的验证失败(通常重定向到同一页面,但使用GET请求)。能否尝试删除要测试的验证?如果您没有填写
,验证将失败,请求将重定向到
GET
版本的
posts/{post}/comment
。我个人不在我的控制器中使用
$this->validate()
,所以我不确定是否要处理这个问题,但事实就是如此。我添加了@csrf,现在删除了验证,但仍然存在相同的问题。@timlews说什么。我通常宁愿使用验证器外观。是关于如何使用它的资源。首先将@csrf添加到您的表单中,然后看看接下来会发生什么。我认为您的验证失败(通常重定向到同一页面,但使用GET请求)。能否尝试删除要测试的验证?如果您没有填写
,验证将失败,请求将重定向到
GET
版本的
posts/{post}/comment
。我个人不在我的控制器中使用
$this->validate()
,所以我不确定是否要处理这个问题,但事实就是如此。我添加了@csrf,现在删除了验证,但仍然存在相同的问题。@timlews说什么。我通常宁愿使用验证器外观。是关于如何使用它的资源。
Route::get('/', 'PagesController@index');

Route::get('/about', 'PagesController@about');

Route::get('/services', 'PagesController@services');

Route::resource('posts','PostsController');

Route::post('/posts/{post}/comment', 'CommentController@store');

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');
Route::resource('posts','PostsController');
Route::post('/posts/{post}/comment', 'CommentController@store');
Route::post('/posts/{post}/comment', 'CommentController@store');
Route::resource('posts','PostsController');