Отсутствуют обязательные параметры для маршрута (Laravel) - PullRequest
0 голосов
/ 25 сентября 2018

Я сейчас совершенно расстроен ...

Попытка использовать метод редактирования в контроллере.Все остальные контроллеры работают нормально, но здесь я мог что-то пропустить и не смог найти.

Ошибка:

 Missing required parameters for [Route: blocked.edit] [URI: 
remittance/blocked/{blocked}/edit]. (View: 
/var/www/xxxxxxxx/resources/views/layouts/app.blade.php) (View: 
/var/www/xxxxxxxx/resources/views/layouts/app.blade.php)

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

public function edit($id)
{
    $blocked = $this->model->find($id);
    return view('remittance::edit', compact('blocked'));
}

Маршрут к этому методу:

remittance/blocked/{blocked}/edit | blocked.edit | Modules\Remittance\Http\Controllers\RemittanceController@edit

Маршрут:

Route::resource('remittance/blocked', 'RemittanceController', [
  'except' => ['show']
]);

Я вызываю этот метод из DataTables, всякий раз, когда я нажимаю edit, меня направляют на URL:

 http://localhost/remittance/blocked/xxxx/edit

Фрагмент из класса DataTables, в котором он отображается:

addColumn('action', function ($query) {
     return view('partials.actions.delete', [
        'actions' => ['edit'],
        'route'   => $this->model,
        'object'  => $query
        ]);
     })

Что правильно для маршрутов.Я проверил другие похожие темы на эту, но все они были вызваны отсутствием {параметра}.

Ответы [ 3 ]

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

Имя параметра в маршруте должно совпадать с параметром в методе.Так что, если разметка URI равна remittance/blocked/{blocked}/edit, она должна быть public function edit($blocked){...

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

Похоже, это была проблема с сухарями.Я зарегистрировал там маршрут и не прошел необходимые параметры.Полностью забыл, что layout.app загружал панировочные сухари.

Сейчас:

Breadcrumbs::register('blocked.edit', function ($breadcrumbs, $blocked) {
$breadcrumbs->parent('blocked.index');
$breadcrumbs->push(trans('remittance::titles.edit'), route('blocked.edit', compact('blocked')));

});

Был раньше:

Breadcrumbs::register('blocked.edit', function ($breadcrumbs) {
$breadcrumbs->parent('home');
$breadcrumbs->push(trans('remittance::titles.edit'), route('blocked.edit'));

});

Спасибо всем за помощь:)

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

используйте это, может быть, вам помогут

public function edit(Blocked $blocked)
{
     $blocked = $blocked;
     return view('remittance::edit', compact('blocked'));
}

, если не работает, то дайте мне знать

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