我正在关注Laravel的教程,但出现错误:
此路由不支持GET方法。支持的方法:POST。
web.php的代码是这样的:
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/p/create', 'PostsController@create');
Route::post('/p', 'PostsController@store');
Route::get('/profile/{user}', 'ProfilesController@index')->name('profile.show');
和create.blade.php的代码是这样的:
<form action="/p" enctype="multipart/form-data" method="POST">
@csrf
...
PostsController.php的代码
public function __construct(){
$this->middleware('auth');
}
public function create(){
return view('posts.create');
}
public function store(){
$data = request()->validate([
'caption' => 'required',
'image' => ['required', 'image'],
]);
auth()->user()->posts()->create($data);
dd(request()->all());
}
您有什么想法吗?
答案 0 :(得分:0)
您是否尝试过action="<form action="{{url('/p')}}" method="POST">
答案 1 :(得分:0)
您可以包括错误行吗?
我们假设您在您的帖子中遇到了错误,因此您可以在下面尝试;
您可以这样命名您的路线;
Route::post('/p', 'PostsController@store')->name('post.post');
像这样在您的路线构建器中使用它
<form action="{{ route('post.post') }}" enctype="multipart/form-data" method="POST">
答案 2 :(得分:0)
对不起,错误很简单... 我在地址中输入了错误...我写的是“ localhost:8000 / p”,而不是正确的地址“ localhost:8000 / p / create”。 感谢您的回答。