Мне нужно было вернуть 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');
}
}
Пожалуйста, помогите мне или скажите, что я могу сделать, чем вы






Если вы хотите, чтобы класс 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);