Функция обновления Laravel - PullRequest
       2

Функция обновления Laravel

0 голосов
/ 26 сентября 2018

Мне нужно изменить значение столбцов с «0» на «1» после нажатия кнопки «Проверить» в моем приложении.

По умолчанию столбец сохраняется как «0».

Мне нужно найти правильный идентификатор счета и обновить это значение.Поэтому я попробовал этот код, но моя функция обновления не работает.

Вид: (Каждая кнопка получила идентификатор моего счета)

<form action="{{route('Invoice.update', ['id' => $in->id])}}" method="post">
    {{method_field('patch')}}
    {{csrf_field()}}
    <input type="hidden" name="catid" id="catid" >
    <button type="submit"  data-catid="{{$in->id}}"></button>
</form>

Контроллер: (Найти счет Id иззначение f input)

public function update(Request $request, $id)
{
    $invoice = Invoice::findOrFail($request->catid);
    $invoice->validate = 1;
    $invoice->save();

    return back();    
}

маршрут:

Route::resource('Invoice','ValidateController');

Ошибки:

  • Нет результатов запроса для модели [App \ Invoice].

Отредактировано Спасибо ...

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Поскольку вы используете Route::resource('Invoces', 'ValidateController), маршрут для обновления вашего счета-фактуры должен содержать ID счета, который вы хотите обновить, а метод обновления в вашем контроллере должен выглядеть следующим образом

public function update(Request $request, $id){
    // here goes the code to update the invode
}

Вы передаете test как значение идентификатора, которого ожидает маршрут invoice.update.

<form action="{{route('Invoice.update', ['id' => $in->id]}}" method="post">

Если вы хотите, чтобы маршрут вел себя так, как вы указали, создайте собственный маршрут для invode.update.Для этого вы должны исключить update при регистрации ресурса invoce и определить другой маршрут для обновления после

Route::match(['put', 'patch'], '/invoce/update', 'ValidationController@update');
Route::resource('Invoce', 'ValidationController')->except(['update'])
0 голосов
/ 26 сентября 2018

Вы уверены, что

Мой код не может найти идентификатор счета (catid)

?

У вас недопустимое действие формы {{route('Invoice.update', 'test')}}.Удалите test свойство - {{route('Invoice.update')}}

И я советую использовать строчные буквы в именах маршрутов: {{route('invoice.update')}} и Route::resource('invoice', 'ValidateController');

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