我无法使用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);
}
答案 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">