Nano Hash - криптовалюты, майнинг, программирование

Как добавить много параметров в маршрут в FOSJsRoutingBundle?

У меня есть маршрут со многими параметрами; но когда я генерирую его с помощью FOSJsRoutingBundle, навигатор принимает только первый параметр и генерирует ошибку 404.

Пример:

var id = $(this).val();
var name = "aaa";
$.ajax({
    url: Routing.generate('my_route', {
            'id': id,
            'name': name
         }),
  // rest of code

Этот синтаксис правильный?

ИЗМЕНИТЬ 1:

Мой маршрут

my_route:
path:  /homepage/{id}/{name}
defaults: { _controller: AcmeBundle:Personal:changename}
options:
    expose: true
07.06.2016

  • Вы можете опубликовать определение маршрута с именем my_route? 07.06.2016
  • вы можете увидеть это в РЕДАКТИРОВАТЬ 1 07.06.2016
  • Очень странно, попробуйте без символа ' как Routing.generate('my_route', { id: id, name: name } 07.06.2016
  • пробовал, но результата нет :( 07.06.2016
  • Можете ли вы опубликовать сигнатуру merhod changename? 10.06.2016

Ответы:


1

На всякий случай, если кто-то еще столкнется с этим (я просто потратил несколько часов впустую)... Если параметр, который вы передаете, соответствует значению по умолчанию, Routing.generate не включает параметр.

Например: Контроллер:

/**
* @Route("/plc/data/{systemID}/{tagID}", name="web_plc_data", options = { "expose" = true })
*/
public function indexAction(Request $request, $systemID=1, $tagID=16)
{
}

Из веточки:

var url = Routing.generate('web_data', { systemID: 10, tagID: 16 });

Будет создан маршрут: /plc/data/10 (обратите внимание, что параметр tagID игнорируется)

Из веточки:

var url = Routing.generate('web_data', { systemID: 10, tagID: 17 });

Будет создан маршрут: /plc/data/10/17 (параметр tagID теперь включен, так как он не соответствует умолчанию)

Лучшим решением, которое я смог найти, было установить для параметров по умолчанию значение NULL в маршруте, а затем инициализировать в самой функции (если значение null, установить какое-то значение).

Ie:

/**
* @Route("/plc/data/{systemID}/{tagID}", name="web_plc_data", options = { "expose" = true })
*/
public function indexAction(Request $request, $systemID=null, $tagID=null)
{
    if ($systemID==NULL)
    {      
        $systemID = 1;   
    }
    if ($tagID==NULL)
    {
        $tagID = 16;
    }
}

Реализация имеет смысл, но немного сбивает с толку, поскольку вызывает неожиданное поведение.

20.02.2019

2

Я не знаю, почему навигатор не принимает второй параметр, но я решил проблему следующим образом:

var id = $(this).val();
var name = "aaa";
var url  = Routing.generate('my_route', {
        id: id,
     }) + "/" + name;
$.ajax({
    url: url,
   // rest of code
08.06.2016

3

На случай, если кто-то еще имеет дело с той же проблемой, я просто добавил параметр expose true к маршруту, так как я использую FOSJsRoutingBundle для создания маршрута в javascript, и все работает нормально.

Вот определение маршрута:

/**
 * @Route("/show/{id}/{toValidate}", name="contribution_show", methods={"GET"}, options={"expose"=true})
 */
public function show(Contribution $contribution, $toValidate): Response

И вот мой вызов ajax для создания маршрута:

URL-адрес: Routing.generate('contribution_show', {id: id, toValidate: toValidate}),

29.01.2021
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..