Запрос PUT Symfony не обновляет сущность - PullRequest
0 голосов
/ 22 марта 2019

Я работаю над Symfony REST API и в настоящее время остановился на PUT-запросе для редактирования данных.Я не знаю, где либо искать ошибку.

Мой код выглядит следующим образом.

Controller.php

    /**
 * User update
 *
 * @Rest\Put("/users/{id}", name="user_update")
 * @Rest\View()
 * @param  Request $request
 * @param          $id
 * @param Users    $restUser
 *
 *
 *
 * @return View
 */
public function updateUserAction( Request $request, $id, Users $restUser )
{
    $results = [];

    $user = $this->em->getRepository( User::class )
                     ->find( $id )
    ;
    /**
     * Data to update user
     */
    if ( ! $user )
    {
        $results[ 'message' ] = sprintf( 'No users found with {%s} ID', $id );
        $results[ 'status' ] = 'failure';

        return View::create( $results );
    }
    $results[ 'beforeUpdate' ] = $user;
    $newData = $request->request->all();

    /**
     * Try to update
     */
    try
    {
        $form = $this->createForm( UserType::class, $user );
        $form->submit( $newData );
        if ( $form->isValid() )
        {
            $results[ 'status' ] = 'success';
            $results[ 'message' ] = 'Pomyślnie zaaktualizowsano użytkownika';

            $this->em->persist( $user );
            $this->em->flush();
        }
        $results[ 'errors' ] = $form->getErrors( FALSE, TRUE );
    }
    catch( \Exception $exception )
    {
        $results[ 'status' ] = 'failure';
        $results[ 'message' ] = 'Wystąpił błąd przy aktualizacji';
        $results[ 'message_exception' ] = $exception->getMessage();

    }
    /**
     * Get BODY of request
     */
    $results[ 'sentData' ] = $newData;


    return View::create($results);
}

И UserFormType.php

class UserType extends AbstractType implements FormTypeInterface{

public function configureOptions( OptionsResolver $resolver )
{
    $resolver->setDefaults( [
        'data_class'         => User::class,
        'allow_extra_fields' => TRUE,
        'csrf_protection'    => FALSE,
    ] );
}

}

Основной вопрос в том, что я все делаю хорошо?Я новичок в Symfony и стараюсь изо всех сил каждый раз, когда я пытаюсь сделать что-то, я думаю, что я получаю каждую доступную ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...