Аксиос поставил запрос и контроллер symfony - PullRequest
0 голосов
/ 16 ноября 2018

Можете ли вы объяснить, почему запрос Axios не работает в моем приложении Symfony?

Я использую запрос Axios с React следующим образом:

handleSubmit = () => {
    axios.put('/families/' + this.props.familyId + '/edit',{
        parents: "test"
    })
        .then(response => {
            alert('Family has been modified');
        })
};

Мой контроллер:

/**
 * Edit Family
 *
 * @Route("families/{id}/edit", name="family_edit")
 * @Method(methods={"PUT"})
 * @param Request $request
 * @param $id
 */
public function editFamilyAction(Request $request, $id)
{
    $parents = $request->get('parents');

    ...
}

Но $ родителей равно нулю ...

Что происходит, нужна ли где-нибудь конфигурация?

Нужна помощь, пожалуйста!

Денис

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Ух ты, кажется, работает!большое спасибо, парень!

Можете ли вы объяснить мне, в чем моя ошибка, пожалуйста?

Я только что скопировал / вставил код команды без успеха.Позвольте мне объяснить код:

Реакция:

 handleSaveDiagnostic = () => {
    axios.put('/admin/api/diagnostic/update-diagnostic/'+ this.state.currentDiagnostic.id, {
        'newDiagnostic': this.state.currentDiagnostic
    })
        .then(response => {
            alert('Family has been modified');
            this.loadCounters();
        })
};

Контроллер:

* @Route("/update-diagnostic/{diagnostic}", name="update_diagnostic")
 * @Method(methods={"PUT"})
 *
 * @param \Symfony\Component\HttpFoundation\Request $request
 * @param \AppBundle\Entity\Diagnostic $diagnostic
 *
 * @return \Symfony\Component\HttpFoundation\Response
 */
public function updateDiagnosticAction(Request $request, Diagnostic $diagnostic) {

    $newDiagnostic = $request->get('newDiagnostic'); (is working!)

    ...
}

В чем разница, пожалуйста, он работает для него, но $ request-> getContentнужен мне ?? !!

0 голосов
/ 17 ноября 2018

Все просто:

/**
 * @Route("/families/{id}/edit", name="family_edit", methods={"PUT"})
 * @param Request $request
 * @param $id
 */
public function editFamilyAction(Request $request, $id)
{

    $data = $request->getContent();
    $data = json_decode($data);
    $parents = $data->parents;

    // do your stuff
}

Обратите внимание, что если вы используете Symfony 4, аннотация метода устарела, вместо этого вам следует правильно настроить аннотацию Route, как я делал в приведенном выше коде.

...