Платформа Api - Symfony - вернуть json в функцию сохранения

Мне нужно было вернуть JsonResponse внутри функции сохранения.

это пример моего класса DataPersister, целью которого является возврат JsonResponse, когда я пытаюсь, я получаю сообщение об ошибке: Контроллер должен вернуть объект \"Symfony\Component\HttpFoundation\Response\", но он вернул объект типа App \Entity\VerificationCodes.

<?php
// api/src/DataPersister/UsersDataPersister.php

namespace App\DataPersister;

use ApiPlatform\Core\DataPersister\DataPersisterInterface;
use App\Entity\Users;
use Doctrine\Common\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;

final class UsersDataPersister implements DataPersisterInterface 
{    
    private $managerRegistry;

    public function __construct(ManagerRegistry $managerRegistry)
    {
      $this->managerRegistry = $managerRegistry;
    }


    public function supports($data): bool
    {
        return $data instanceof Users;
    }

    public function persist($data){
        $em = $this->managerRegistry->getManagerForClass(Users::class);
        $user = new Users();
        //Persist User with encode password
        return $user;
        return new JsonResponse(['response'=>'yes']);
    }


    public function remove($data)
    {
      throw new \RuntimeException('"remove" is not supported');
    }
}

Пожалуйста, помогите мне или скажите, что я могу сделать, чем вы

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
653
1

Ответы 1

Если вы хотите, чтобы класс App\Entity\Users был преобразован в JSON, вы можете реализовать интерфейс JsonSerializable (это собственный интерфейс PHP). Этот интерфейс заставляет вас реализовать метод jsonSerialized, который автоматически вызывается при преобразовании объекта в json (например, когда вы используете json_encode($user);.

Наконец, вы можете попробовать с

class Users implements \JsonSerializable
{
    public function jsonSerialize()
    {
        return []; // an array representation of your class
    }
}

тогда ты можешь ...

return new JsonResponse(json_encode($user));

или, может быть) ...

return new JsonResponse($user);

Другие вопросы по теме