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

尽管我在 Laravel 中使用 PUT,但 GET 不支持

尽管我在 Laravel 中使用 PUT,但 GET 不支持

PHP
手掌心 2023-10-15 16:52:34
我正在使用 Laravel 7,我可以添加条目并从数据库中查看它们。当我尝试编辑或更新已编辑的更改时,我要么收到 Laravel 的警告,说GET method is not supported for this route. Supported methods: PUT. 但是,我在 web.php 路由以及方法调用中都使用了 PUT。我肯定做错了什么。这是我的路由调用 artisan 路由的视图:列表在 web.php 的路由组中,这是我正在调用的控制器:Route::group(['middleware' => ['auth', 'isAdmin']], function () {    Route::get('/dashboard', function () {        return view('admin.dashboard');    });    Route::get('registered-user', 'Admin\RegisteredController@index');    Route::get('registered-empresa', 'Admin\EmpresaController@index');    Route::get('role-edit/{id}', 'Admin\RegisteredController@edit');    Route::put('role-update/{id}', 'Admin\RegisteredController@updaterole');    Route::post('save-empresa', 'Admin\EmpresaController@store');    Route::put('edit-empresa/{id}', 'Admin\EmpresaController@update');});这是我在 EmpresaController.php 中创建的更新函数: public function update(Request $request, $id)    {        $this->validate($request, [            'erfc' => 'required',            'enombre' => 'required',            'ecalle' => 'required',            'ecolonia' => 'required',            'eciudad' => 'required',            'eestado' => 'required',            'ecpostal' => 'required',            'epais' => 'required',        ]);        $empr = Empresa::find($id);        $empr->erfc = $request->input('erfc');        $empr->enombre = $request->input('enombre');        $empr->ecalle = $request->input('ecalle');        $empr->ecolonia = $request->input('ecolonia');        $empr->eciudad = $request->input('eciudad');        $empr->eestado = $request->input('eestado');        $empr->ecpostal = $request->input('ecpostal');        $empr->epais = $request->input('epais');        $empr->update();        return redirect('/registered-empresa')->with('status', 'Empresa se actualizó correctamente.');    }我很确定我在这个文件中做错了什么。任何有关我如何做得更好的帮助或者如果我错过了什么,我一定会很感激。先感谢您。
查看完整描述

3 回答

?
LEATH

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

在 web.php 中

Route::patch('edit-empresa/{id}', 'Admin\EmpresaController@update');

索引.blade.php

@method('PATCH')


查看完整回答
反对 回复 2023-10-15
?
富国沪深

TA贡献1790条经验 获得超9个赞

POST即使您将其包含在表单内部,您也需要在定义表单时指定方法@method('PUT')。这是因为 HTML 不PUT直接支持方法,默认情况下它将是一个GET. 所以更正一下:

改变这个:

<form action="edit-empresa/" id="editForm">

<form action="edit-empresa/" id="editForm" method="POST">


查看完整回答
反对 回复 2023-10-15
?
当年话下

TA贡献1890条经验 获得超9个赞

由于某种原因,我无法使用模态和 jquery 方法使其工作,因此我从 index.blade.php 底部删除了数据表 jquery。我的第一个错误是没有先调用数据。我在 view-admin-empresa 文件夹中创建了一个名为 edit.blade.php 的单独文件。这是代码:


@extends('layouts.admin')



@section('content')

<div class="container-fluid mt-5">


<!-- Heading -->

<div class="card mb-4 wow fadeIn">


    <!--Card content-->

    <div class="card-body d-sm-flex justify-content-between">


      <h4 class="mb-2 mb-sm-0 pt-1">

        <span>Empresa Registrada - Editar Empresa</span>

      </h4>

    </div>


  </div>

  <!-- Heading -->

<div class="row">

    <div class="col-md-12">

        <div class="card">

            <div class="card-header">

                <h4 class="card-title">Editar Empresa</h4>

            <form action="{{ url('empresa-update/'.$empresa->id) }}" id="editForm" method="POST">

                    {{ csrf_field() }}

                    {{ method_field('PUT') }}

                        <div class="modal-body mx-3">

                            <div class="md-form mb-1">

                            <label for="erfc">RFC</label>

                            <input value="{{ $empresa->erfc }}" type="text" name="erfc" id="erfc" class="form-control validate">

                            </div>

                            <div class="md-form mb-1">

                                <label for="enombre">Nombre</label>

                                <input value="{{ $empresa->enombre }}" type="text" name="enombre" id="enombre" class="form-control validate">


                            </div>

                            <div class="md-form mb-1">

                                <label for="ecalle">Calle</label>

                                <input value="{{ $empresa->ecalle }}" type="text" name="ecalle" id="ecalle" class="form-control validate">


                            </div>

                            <div class="md-form mb-1">

                                <label for="ecolonia">Colonia</label>

                                <input value="{{ $empresa->ecolonia }}" type="text" name="ecolonia" id="ecolonia" class="form-control validate">


                            </div>

                            <div class="md-form mb-1">

                                <label for="ecuidad">Ciudad</label>

                                <input value="{{ $empresa->eciudad }}" type="text" name="eciudad" id="eciudad" class="form-control validate">


                            </div>

                            <div class="md-form mb-1">

                                <label for="eestado">Estado</label>

                                <input value="{{ $empresa->eestado }}" type="text" name="eestado" id="eestado" class="form-control validate">


                            </div>

                            <div class="md-form mb-1">

                                <label for="ecpostal">Codigo Postal</label>

                                <input value="{{ $empresa->ecpostal }}" type="text" name="ecpostal" id="ecpostal" class="form-control validate">


                            </div>

                            <div class="md-form mb-1">

                                <label for="epais">País</label>

                                <input value="{{ $empresa->epais }}" type="text" name="epais" id="epais" class="form-control validate">

                            </div>

                            <div style="display: none;" class="md-form mb-1">

                                <input type="text" name="euser" readonly id="euser" class="form-control validate" value="{{ Auth::user()->id }}">

                            </div>

                            <div style="display: none;" class="md-form mb-1">

                                <input type="text" name="eregby" readonly id="eregby" class="form-control validate" value="{{ Auth::user()->id }}">

                            </div>

                        </div>


                        <div class="modal-footer d-flex justify-content-center">

                        <a href="{{ url('registered-empresa') }}" class="btn btn-secondary">Cancelar</a>

                            <button type="submit" class="btn btn-deep-orange">Editar</button>

                        </div>

                    </form>

            </div>

        </div>

    </div>

</div>

</div>

@endsection

然后在 web.php 中,我创建了以下路由:


Route::group(['middleware' => ['auth', 'isAdmin']], function () {

    Route::get('/dashboard', function () {

        return view('admin.dashboard');

    });


    Route::get('registered-user', 'Admin\RegisteredController@index');

    Route::get('registered-empresa', 'Admin\EmpresaController@index');

    Route::get('role-edit/{id}', 'Admin\RegisteredController@edit');

    Route::put('role-update/{id}', 'Admin\RegisteredController@updaterole');

    Route::post('save-empresa', 'Admin\EmpresaController@store');

    Route::get('/edit-empresa/{id}', 'Admin\EmpresaController@edit');

    Route::put('/empresa-update/{id}', 'Admin\EmpresaController@update');

});

如前所述,我消除了编辑模式并重定向到 empresa edit.blade.php 文件。


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

添加回答

举报

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