您是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';
}
这是我的路线列表:
这里是完整错误 Error
答案 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
上,这就是引发异常的原因。