Как исправить ошибку «Слишком мало аргументов для функции App \ Http \ Controllers \ .. \ Controller :: edit (), 0 пройдено и ровно 1 ожидается» в Laravel - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу показать страницу редактирования и обновлять запись всякий раз, когда пользователь нажимает кнопку «РЕДАКТИРОВАТЬ» в таблице записей на странице индекса.

В основном речь идет о функции EDIT в типичной операции CRUD в Laravel 5.8

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

Функция редактирования в контроллере

public function edit($id)
{
    $grantapplications = grantapplications::findOrfail($id);

    return view('member.grant_apply.edit', compact('grantapplications'));
}

Маршруты панели инструментов участника

Route::group(['namespace' => 'Member'], function()
{
    Route::get('/grant_apply/edit', 'GrantApplicationsController@edit')
        ->name('member.grant_apply.edit');
    Route::post('/grant_apply/edit/{id}', 'GrantApplicationsController@update')
        ->name('member.grant_apply.update');
});

Edit.blade

<form method="post" action="{{ route('member.grant_apply.edit', $grantapplications->id) }}">
    @method('PATCH')
        @csrf

Отправить кнопку при редактировании.blade

<input class="btn btn-lg btn-primary btn-block"
       type="submit" 
       value="Update!">

На всякий случай, если вы захотите увидеть мою функцию update ()

public function update(Request $request, $id)
{
    $request->validate([
        'project_category' => 'required',
        'project_title' => 'required',
        'project_desc' => 'required',
        'project_location' => 'required',
        'grant_goal' => 'required',
        'start_date' => 'required',
        'end_date' => 'required'
    ]);

    $grantapplications = grantapplications::find($id);
    $project_category->project_category = $request->get('project_category');
    $project_title->project_title =  $request->get('project_title');
    $project_desc->project_desc = $request->get('project_desc');
    $project_location->project_location  = $request->get('project_location');
    $grant_goal->grant_goal = $request->get('grant_goal');
    $start_date->start_date = $request->get('start_date');
    $end_date->end_date = $request->get('end_date');

    $grantapplications->save();

    return redirect('/member/grant_apply/index')
        ->with('success', 'Application is successfully updated!');
}

Между тем, идентификатор grantapplications фактически существует в БД.

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

С нетерпением жду благодарности

1 Ответ

1 голос
/ 24 апреля 2019

Я смог решить ее, переписав свой маршрут.Спасибо всем

Route::get('/grant_apply/edit/{id}', 'GrantApplicationsController@edit')- 
>name('member.grant_apply.edit');
Route::post('/grant_apply/edit/{id}', 'GrantApplicationsController@update')- 
>name('member.grant_apply.update');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...