разбор переменной из представления в контроллер laravel-backpack

#laravel #parsing #routing #laravel-backpack

#laravel #синтаксический анализ #маршруты #laravel-рюкзак

Вопрос:

я использую Laravel-Backpack. не могли бы мы проанализировать некоторые параметры из представления в контроллер рюкзака? представьте, что у меня есть некоторый список пакета. каждый пакет имеет 5 раундов, поэтому каждый пакет имеет 5 кнопок в своем ряду. когда я нажму первую кнопку (раунд 1), откроется список элементов, которые имеют round_id = 1.

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

моя кнопка

 <a href="{{ url($crud->route.'/'.'round/1'}}" class="btn btn-xs btn-primary btn-flat"  title="Delete"><i>2</i></a>
  

мой маршрут

 CRUD::resource('package/round/{RoundId}', 'AdminCrudController');
  

мой crud-контроллер

 $round= Route::current()->parameter('RoundId');

$this->crud->addClause('where', 'round', '=', $round);
  

но он возвращает ошибку

Шаблон маршрута «/ admin/ package / round / {roundId} / {{roundId}}» не может ссылаться на имя переменной «roundId» более одного раза.

что я знаю, так это то, что мы не можем разобрать param в restfull controller, потому что restfull предназначен для быстрой обработки. итак, что я должен сделать для синтаксического анализа идентификатора из представления в контроллер. или, может быть, есть прекрасный способ сделать запросы? я действительно ценю это

Большое спасибо!

Ответ №1:

я нашел способ избежать этого.

это НЕ МОЖЕТ быть похоже:

 CRUD::resource('package/round/{RoundId}', 'AdminCrudController');
  

мы должны следовать шаблону маршрута по умолчанию, например

 CRUD::resource('someRoute/{someId}/someSecondRoute{someSecondId}', 'AdminCrudController');
  

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

 $firstParam= Route::current()->parameter('someID');
$SecondParam= Route::current()->parameter('someSecondID');
  

надеюсь, это поможет кому-то еще;)