Обработка маршрутов Symfony в вызовах axios / ajax - PullRequest
0 голосов
/ 23 января 2019

Необходимость передачи данных на сервер из реагирования. Файл js является частью проекта, а не отдельным.Проблема с этим, кажется, не может найти маршрут в Symfony

profile:
path: /profile/{slug}
defaults: { _controller: MyBundle:Agent:profile }

В AgentController

 public function profileAction(Request $request, $slug)

Reactjs файл

   axios.get('/profile',{
        params: {
            slug:agent.slug,
            id:agent.id
        }
    }).then((res) => {
        console.log(res, 'the response')
    }).catch((err) => console.log(err.toString(), 'error'))

Но я продолжаю получатьошибка маршрута не найдена связанная ошибка, есть идеи?

1 Ответ

0 голосов
/ 23 января 2019

Сгенерированный вами запрос axios не выполнит ваш запрос, но выполнит следующий запрос без параметров маршрута:

/profile

Пока должен быть следующий маршрут

/profile/{agent.slug}

Вы можете использовать шаблонные литералы для этого

axios.get(`/profile/${agent.slug}`)
    .then((res) => {
        console.log(res, 'the response')
    }).catch((err) => console.log(err.toString(), 'error'))

Если вы не используете веб-пакет или что-то необычное, вам нужно объединить строку самостоятельно.

axios.get(`/profile/` + agent.slug)
    .then((res) => {
        console.log(res, 'the response')
    }).catch((err) => console.log(err.toString(), 'error'))

Просто знайте, что ваш параметр agent.slug никогда не бывает неопределенным.

Вы также можете использовать FOSJsRoutingBundle для этого, так как вы используете SymfonyFramework. Использование этого позволит вам использовать:

axios.get(Routing.generate('profile', {slug: agent.slug})
    .then((res) => {
        console.log(res, 'the response')
    }).catch((err) => console.log(err.toString(), 'error'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...