Отсутствует требуемая ошибка параметров в производстве, но работает локально - PullRequest
0 голосов
/ 21 апреля 2020

Странно, я сражался последние 12i sh часов. В моем производственном приложении я получаю следующую ошибку:

Missing required parameters for [Route: tasks.update] [URI: tasks/{task}]. (View: /home/forge/DOMAIN/resources/views/tasks/index.blade.php) 

Мое действие формы:

<form method="POST" action="{{ route('tasks.update', ['task' => $task->task_id]) }}">

Мой метод контроллера:

 public function update(Task $task, Request $request)
    {
        if ($request->priority_score != $task->job->priority)
        {
            $task->job()->update([
                'priority' => $request->priority_score
            ]);

            return back()->with('success', 'Priority score successfully updated!');
        }

        $task->update($request->all());

        return back()->with('success', 'Task successfully updated!');
    }

И мои маршруты /web.php

Route::post('/tasks/{task_id}', 'TaskController@update')->name('tasks.update');
Route::resource('tasks', 'TaskController');

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

Я очистил кеши, запустил dump-autoload, все безрезультатно.

Мысли?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Проверка страницы с помощью инструментов разработчика показала, что существует набор $ tasks, у которых нет task_id. Я написал код для проверки на нулевое значение, и теперь он работает в производстве.

0 голосов
/ 21 апреля 2020

В указанном вами маршруте ресурса уже указан формат маршрута, например:

Route::post('/tasks/{task_id}', 'TaskController@update');

Вы можете найти его в списке маршрутов. Так что эти два маршрута могут создать дублирующую проблему, я думаю. Вы можете попробовать изменить свой единственный маршрут следующим образом:

Route::post('/task/{task_id}', 'TaskController@update')->name('task.update');

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

...