为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel:此路由不支持 POST 方法

Laravel:此路由不支持 POST 方法

PHP
精慕HU 2023-10-15 15:16:36
我对 Laravel 有点陌生,我为我的页面制作了一个表单,用户可以在其中添加新图像,该表单位于create.blade.php:<form action="/p" enctype="multipart/form-data" method="post">@csrf<div class="row">    <div class="col-8 offset-2">        <div class="row">            <h1>Add New Post</h1>        </div>        <div class="form-group row">            <label for="caption" class="col-md-4 col-form-label">Post Caption</label>                          <input id="caption"                 type="text"                 class="form-control @error('caption') is-invalid @enderror"                 name="caption"                 value="{{ old('caption') }}"                 autocomplete="caption" autofocus>                @error('caption')                    <span class="invalid-feedback" role="alert">                        <strong>{{ $message }}</strong>                    </span>                @enderror                     </div>        <div class="row">            <label for="image" class="col-md-4 col-form-label">Post Image</label>             <input type="file" class="form-control-file" id="image" name="image">            @error('image')                <span class="invalid-feedback" role="alert">                    <strong>{{ $message }}</strong>                </span>            @enderror        </div>        <div class="row pt-4">            <button class="btn btn-primary">Add New Post</button>        </div>    </div></div>这是web.php(路线)文件:Route::get('/p/create','PostsController@create');Route::get('/p','PostsController@store');Route::get('/profile/{user}', 'ProfilesController@index')->name('profile.show');正如你所看到的,它指的PostController.php是:class PostsController extends Controller{    public function create()    {        return view('posts.create');    }    public function store()    {        dd(request()->all());    }}我也执行命令php artisan route:list,就是这样:那么这里出了什么问题呢?我搜索了很多但找不到任何有用的东西。因此,如果您知道如何解决此问题,请告诉我。
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

您正在向服务器发送请求,因此需要将 HTTP 请求设置为 post 而不是 get,如下所示

Route::post('/p','PostsController@store');


查看完整回答
反对 回复 2023-10-15
?
慕村9548890

TA贡献1884条经验 获得超4个赞

  1. 在 create.blade.php 表单方法中是,POST但在 web.php 中是 Route::get('/p','PostsController@store');,所以你应该更改 Route::post('/p','PostsController@store')而不是 Route::get('/p','PostsController@store')

  2. 在控制器中

use Illuminate\Http\Request;

class PostsController extends Controller

{

    public function create()

    {

        return view('posts.create');

    }

    public function store(Request $request)

    {

        dd($request->input('image'));

    }

}


查看完整回答
反对 回复 2023-10-15
?
交互式爱情

TA贡献1712条经验 获得超3个赞

您需要添加一条POST路线

Route::post('/p','PostsController@store');


查看完整回答
反对 回复 2023-10-15
  • 3 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信