Есть ли решение проблемы отсутствия необходимых параметров для [Маршрут :?

Может ли кто-нибудь помочь мне с этой ошибкой? Я борюсь уже несколько дней. введите здесь описание изображения

Отсутствуют обязательные параметры для [Route: helper.update] [URI: helper / {id}]. (Вид: D: \ Training \ LaravelProjects \ help \ resources \ views \ helper \ edit.blade.php)

Я следил за документацией и до сих пор не могу понять, что не так. Это мой код.

Web.php

Route::group(['prefix' => 'helper'], function (){
 Route::get('/create', [
    'uses' => 'HelperController@create',
    'as' => 'helper.create'
 ]);

 Route::get('/{id}/edit', [
    'uses' => 'HelperController@edit',
    'as' => 'helper.edit'
 ]);

 Route::get('/{id}', [
    'uses' => 'HelperController@show',
    'as' => 'helper.show'
 ]);

 Route::post('/', [
    'uses' => 'HelperController@store',
    'as' => 'helper.store'
 ]);

 Route::put('/{id}', [
    'uses' => 'HelperController@update',
    'as' => 'helper.update'
 ]);

 Route::delete('/{id}', [
    'uses' => 'HelperController@destroy',
    'as' => 'helper.destroy'
 ]);
});

HelperController.php

public function edit($id)
{
    $helper = Helper::find($id);
    return view('helper.edit', compact('helper'));
}

index.blade.php

<tbody>
                @foreach($helpers as $helper)
                <tr>
                    <td>{{ $helper->name }}</td>
                    <td>{{ $helper->email }}</td>
                    <td>{{ $helper->telephone }}</td>
                    <td>{{ $helper->city }}</td>
                    <td>{{ $helper->district }}</td>
                    <td>{{ $helper->province }}</td>
                    <td>{{ $helper->category }}</td>
                    <td>
                        <a href="{{ route('helper.edit', $helper->id) }}" class="edit">
                            <i class="fas fa-pencil-alt" title="Edit" style="font-size: 16px"></i>
                        </a>
                        <a href="#deleteEmployeeModal" class="delete" data-toggle="modal" data-widget="">
                            <i class="fas fa-trash" title="Delete" style="font-size: 16px"></i>
                        </a>
                    </td>
                </tr>
                @endforeach

Все, что мне нужно, - это открыть файл edit.blade.php после того, как я нажму ссылку редактирования. Часть удаления не завершена, не обращайте на это внимания. Кроме того, идентификатор передается как параметр, но все еще говорит, что он отсутствует. введите здесь описание изображения


person Hisham Hafeel    schedule 31.12.2019    source источник
comment
Ошибка находится в edit.blade.php представлении, а не в index.blade.php, и это касается маршрута update, а не маршрута edit.   -  person Salim Djerbouh    schedule 31.12.2019
comment
проблема в вашей странице редактирования. не на главной странице. поделиться действием формы редактирования страницы.   -  person zahid hasan emon    schedule 31.12.2019


Ответы (2)


В resources\views\helper\edit.blade.php не забудьте передать идентификатор помощника в форму обновления post / put html

{{ route('helper.update', $helper->id) }}

Надеюсь это поможет

person Salim Djerbouh    schedule 31.12.2019
comment
Да, это было сделано. Но все, что я хочу, это открыть edit.blade.php, передав параметр, с чем я борюсь. - person Hisham Hafeel; 31.12.2019
comment
Я не понимаю, почему идентификатор должен быть передан туда, поскольку я не работаю над отправкой формы для обновления. - person Hisham Hafeel; 31.12.2019
comment
Поскольку функция route пыталась скомпилировать правильный URL-адрес, читает то, что у вас есть в routes/web.php, и выдает ошибку, если не может этого сделать. - person Salim Djerbouh; 31.12.2019

У меня была аналогичная проблема с моим проектом, проблема здесь в вашем идентификаторе. Эти отсутствующие параметры - это идентификаторы, которые не могут быть получены Laravel, потому что он имеет нулевое значение.

В PHPMyAdmin,

отредактируйте файл SQL и удалите идентификатор таблицы, отвечающий за хранение информации о конкретном действии, вызвавшем ошибку. Затем добавьте один столбец в начало таблицы. установите для имени id, установите длину / значение на 11, установите тип на целое число (INT), затем щелкните поле рядом с NULL и установите значение PRIMARY. дождитесь всплывающего окна и нажмите ОК. После этого установите флажок под автоматическим приращением. сохраните свою таблицу, а теперь обновите и обратите внимание, что каждый столбец теперь имеет идентификатор с разными значениями. И не ноль. вернитесь в приложение Ur и повторно отправьте свой запрос, он должен работать безупречно.

person Chris bcd    schedule 31.08.2020
comment
Вы не должны включать в свои ответы свой адрес электронной почты и веб-сайт. Вы можете зарезервировать это для своего личного профиля, если хотите ... - person Aliqua; 31.08.2020