Getting MethodNotAllowedHttpException没有消息将数据存储到数据库中时出错[Laravel]

时间:2019-01-24 09:10:30

标签: php laravel

您是laravel的新用户,正在尝试将数据存储到数据库中并出现此错误:

MethodNotAllowedHttpException 没有消息

在这里我创建了资源

Routes:
Route::resource("/post","PostController");

这是我的PostController中的store方法

public function store(Request $request)
{
    Post::create($request->all());
    return redirect('post');
}

这是我发布的HTML表单

<!DOCTYPE html>
<html>
<head>
<title>Create Post</title>
</head>
<body>
<form action="" method="post">
    {{  csrf_field() }}
    <input type="text" name="title" placeholder="Enter Title"><br>
    <input type="submit" name="submit">
</form>
</body>
</html>

帖子模型

<?php

 namespace App;

 use Illuminate\Database\Eloquent\Model;

 class Post extends Model
 {
   protected $fillable = ["_token","title"];
   protected $table = 'Post';
 }

这是我的路线列表:

Route List

这里是完整错误 Error

3 个答案:

答案 0 :(得分:2)

您需要在此处添加一个表单操作,考虑到您正在使用资源控制器,post.store应该可以正常工作:

<form action="{{ route('post.store') }}" method="post"> 

如果这无济于事,请告诉我。

答案 1 :(得分:1)

您必须将数据发送到视图。

public function store(Request $request)
{
    $data = Post::create($request->all());
    return redirect('post')->with('data',$data);
}

使用以下路线->

Route::post('/post', 'PostController@store');

答案 2 :(得分:0)

在表单中指定操作。

您可以将HTML更新为此,它应该可以工作:

<!DOCTYPE html>
<html>
<head>
<title>Create Post</title>
</head>
<body>

<form action="{{ url('/post') }}" method="post">
    {{  csrf_field() }}

    <input type="text" name="title" placeholder="Enter Title"><br>
    <input type="submit" name="submit">

</form>
</body>
</html>

这是因为创建路径为/post/create,存储路径为/post。由于未指定任何操作,因此表单将发布到/post/create上,这就是引发异常的原因。