#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');
надеюсь, это поможет кому-то еще;)