该路由不支持GET方法。支持的方法:POST

时间:2019-06-02 14:16:36

标签: php laravel

我正在关注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());
    }

您有什么想法吗?

3 个答案:

答案 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”。 感谢您的回答。