Поскольку я новичок в столбцах MySQL JSON, я не могу заставить это работать:
class MyEntity {
#[ORM\Column(name: "additional_names", type: Types::JSON, unique: false, nullable: true)]
private ?array $additionalNames;
final public function getAdditionalNames(): ?array
{
return $this->additionalNames;
}
final public function setAdditionalNames(?array $additionalNames): void
{
$this->additionalNames = $additionalNames;
}
}
Итак, при выполнении$this->myRepository->persist($entity);
$this->myRepository->flushEntities();
затем я получаю сообщение об ошибке:
Произошло исключение при выполнении запроса: SQLSTATE[42000]: Syntaxошибка или нарушение прав доступа: 1235 Эта версия MySQL еще не
поддерживает преобразование типа JSON OBJECT в массив
Я использую MySQL 8.0.26.
В базе данных у меня есть следующее ограничение для столбца:
CONSTRAINT `chk_additional_names` CHECK (json_schema_valid(_utf8mb4'{\n "\$schema": "http://json-schema.org/draft-04/schema#",\n "type": "array",\n "items": {\n "type": "string",\n "maxlength": 255\n }\n }',`additional_names`)
Подробнее здесь: https://stackoverflow.com/questions/784 ... -correctly