Как мне обновить контент в моей базе данных? - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь обновить значения, полученные из базы данных, но, похоже, не идет к функции маршрутов

Я пытался изменить метод маршрутов и даже отключить запрос, но, похоже, он не работает

Вот маршрут

Route::put("/users/bonus/update/{id}", 
       [
         "uses" => "AdminDashboardController@updatebonus",
         "as"=> "userbonus.mer"
       ]);

ниже - функция, которая была вызвана для обновления

public function updatebonus(Request $request, $id)
{

    if (auth()->user()->isAdmin != 1) {
        return redirect()->route('home');
    } else if (auth()->user()->isAdmin == 1) {

        $bonus=OtherBonus::where('id','=','$id')->first();
        $bonus->card_bonus=trim(strip_tags($request['cbonus']));
        $bonus->monthly_bonus=trim(strip_tags($request['mbonus']));
        $bonus->travelling_bonus=trim(strip_tags($request['tbonus']));
        $bonus->festival_bonus=trim(strip_tags($request['fbonus']));
        $bonus->save();

        return redirect()->back()->with("success", "Bonus Settings 
Successfully updated");
    }
}

ниже - форма, которая передает данные в функцию, которая сообщаетс базой данных.

    <form class="form-horizontal form-label-left"  action="{{route('userbonus.mer', ['id'=>$bonus['id']])}}" method="PUT">

                            <span class="section">General Bonus in %age</span>

                            <div class="item form-group">
                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="cbonus">Card
                                    Bonus <span class="required">*</span>
                                </label>
                                <div class="col-md-6 col-sm-6 col-xs-12">
                                    <input class="form-control col-md-7 col-xs-12"
                                           value="{{$bonus['card_bonus']}}" name="cbonus"
                                           placeholder="10.00%" required="required" type="text">
                                </div>
                            </div>

                            <div class="item form-group">
                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="fbonus">Festival
                                    Bonus<span class="required">*</span>
                                </label>
                                <div class="col-md-6 col-sm-6 col-xs-12">
                                    <input type="text" name="fbonus" required="required"
                                           value="{{$bonus['festival_bonus']}}"
                                           class="form-control col-md-7 col-xs-12" placeholder="34.6%">
                                </div>
                            </div>

                            <div class="item form-group">
                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="mbons">Monthly
                                    Bonus <span class="required">*</span>
                                </label>
                                <div class="col-md-6 col-sm-6 col-xs-12">
                                    <input type="text" id="email" name="mbonus" required="required"
                                           value="{{$bonus['monthly_bonus']}}" placeholder="56.9%"
                                           class="form-control col-md-7 col-xs-12">
                                </div>
                            </div>

                            <div class="item form-group">
                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="tbonus">Travelling
                                    Bonus <span class="required">*</span>
                                </label>
                                <div class="col-md-6 col-sm-6 col-xs-12">
                                    <input type="text" id="email" name="tbonus" placeholder="0.89%"
                                           value="{{$bonus['travelling_bonus']}}" required="required"
                                           class="form-control col-md-7 col-xs-12">
                                </div>
                            </div>



                            <div class="form-group">
                                <div class="col-md-6 col-md-offset-3">
                                    <button type="reset" class="btn btn-primary">Reset</button>
                                    <button type="submit" class="btn btn-success">Submit</button>
                                </div>
                            </div>
                        </form>

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Форма HTML не принимает PUT в качестве метода.Работает только с GET и POST.Посмотрите здесь .Поэтому, если вы напишите

<form method="PUT"></form>

, вы отправите форму в виде запроса GET.Laravel прослушивает определенный ввод, который должен быть представлен после отправки формы, чтобы распознать метод PUT.Ознакомьтесь с официальной документацией

HTML-формы не поддерживают действия PUT, PATCH или DELETE.Таким образом, при определении маршрутов PUT, PATCH или DELETE, которые вызываются из формы HTML, вам необходимо добавить в форму скрытое поле _method.Значение, отправленное с полем _method, будет использоваться в качестве метода HTTP-запроса:

<form action="/foo/bar" method="POST">
    <input type="hidden" name="_method" value="PUT">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

Вы можете использовать директиву @method Blade для генерации ввода _method:

<form action="/foo/bar" method="POST">
    @method('PUT')
    @csrf
</form>
0 голосов
/ 24 сентября 2019

Попробуйте это

public function updatebonus(Request $request, $id)
{

    if (auth()->user()->isAdmin != 1) {
        return redirect()->route('home');
    } else if (auth()->user()->isAdmin == 1) {

        $bonus=OtherBonus::find($id);
        $bonus->update([
          'monthly_bonus'=>$request->mbonus,
           'travelling_bonus'=>$request->tbonus,
          'festival_bonus'->$request->fbonus;
]);


        return redirect()->back()->with("success", "Bonus Settings 
Successfully updated");
    }
}

И ФАЙЛ ДЛЯ ЛЕЗВИЯ ПРОСТО ИЗМЕНИТЕ МЕТОД, чтобы опубликовать и после этого добавить {{method_field ('PUT')}} {{csrf_field ()}}

   <form class="form-horizontal form-label-left"  action="{{route('userbonus.mer', ['id'=>$bonus['id']])}}" method="post">
                             {{method_field('PUT')}}
                                {{csrf_field()}}

                            <span class="section">General Bonus in %age</span>

                            <div class="item form-group">
                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="cbonus">Card
                                    Bonus <span class="required">*</span>
                                </label>
                                <div class="col-md-6 col-sm-6 col-xs-12">
                                    <input class="form-control col-md-7 col-xs-12"
                                           value="{{$bonus['card_bonus']}}" name="cbonus"
                                           placeholder="10.00%" required="required" type="text">
                                </div>
                            </div>

                            <div class="item form-group">
                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="fbonus">Festival
                                    Bonus<span class="required">*</span>
                                </label>
                                <div class="col-md-6 col-sm-6 col-xs-12">
                                    <input type="text" name="fbonus" required="required"
                                           value="{{$bonus['festival_bonus']}}"
                                           class="form-control col-md-7 col-xs-12" placeholder="34.6%">
                                </div>
                            </div>

                            <div class="item form-group">
                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="mbons">Monthly
                                    Bonus <span class="required">*</span>
                                </label>
                                <div class="col-md-6 col-sm-6 col-xs-12">
                                    <input type="text" id="email" name="mbonus" required="required"
                                           value="{{$bonus['monthly_bonus']}}" placeholder="56.9%"
                                           class="form-control col-md-7 col-xs-12">
                                </div>
                            </div>

                            <div class="item form-group">
                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="tbonus">Travelling
                                    Bonus <span class="required">*</span>
                                </label>
                                <div class="col-md-6 col-sm-6 col-xs-12">
                                    <input type="text" id="email" name="tbonus" placeholder="0.89%"
                                           value="{{$bonus['travelling_bonus']}}" required="required"
                                           class="form-control col-md-7 col-xs-12">
                                </div>
                            </div>



                            <div class="form-group">
                                <div class="col-md-6 col-md-offset-3">
                                    <button type="reset" class="btn btn-primary">Reset</button>
                                    <button type="submit" class="btn btn-success">Submit</button>
                                </div>
                            </div>
                        </form>

В Route сделай пост

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...