RouteCollection.php第218行中的MethodNotAllowedHttpException:Laravel

时间:2016-12-08 07:12:51

标签: laravel

我无法使用laravel将表单发布到我的数据库。当我单击提交时,它会在RouteCollection.php第218行显示错误MethodNotAllowedHttpException。我的HTML代码如下所示。我已经定义了如下所示的路由,并且我还粘贴了包含store函数的PostController。

<div class="blog-page blog-content-2">
        <div class="row">
            <div class="col-lg-9">
                <div class="blog-single-content bordered blog-container">
                    <div class="blog-comments">
                        <h3 class="sbold blog-comments-title">Leave A Comment</h3>
                        <form method="post" action="store">
                            <div class="form-group">
                                <input name="title" type="text" placeholder="Your Name" class="form-control c-square"> </div>                      
                            <div class="form-group">
                                <textarea name="body" rows="8" name="message" placeholder="Write comment here ..." class="form-control c-square"></textarea>
                            </div>
                            <div class="form-group">
                                <button type="submit" class="btn blue uppercase btn-md sbold btn-block">Submit</button>
                            </div>
                        </form>
                    </div>
                </div>      
            </div>
        </div>
    </div>

这是我的路线页

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

这是PostController,它包含store函数,用于将数据存储到数据库中。

public function store(Request $request)
        {
            //Validate the data
            $this->Validate($request, array(
                'title'=>'required|max:255',
                'body'=>'required'
                ));

            //Store the data into the database
            $post = new Post;
            $post->title = $request->get('title');
            $post->body = $request->get('body');
            $post->save();

            //redirect to another page
            return redirect()->route('posts.show', $post->id);
        }

3 个答案:

答案 0 :(得分:1)

问题在于:

posts

你应该把<form method="post" action="posts"> 放在这里:

Route::resource()

您可以使用php artisan route:list命令查看使用posts.store创建的所有路由。在这里,您需要查看为<form method="post" action="posts"> {{ csrf_field() }} 路由创建的URI。

此外,您需要在表单中添加CSRF token

<form method="post" action="store">

答案 1 :(得分:1)

store会将您发送到您没有的路径<form method="post" action="."> ,您的表单应发布到相同的网址,如下所示:

HRESULT SetInputType(const WAVEFORMATEXTENSIBLE* wavFmt);

答案 2 :(得分:0)

使用

<form method="post" action="posts">