Symfony - доктрина - изменить кодировку - все сущности и строки - PullRequest
0 голосов
/ 16 апреля 2019

Мне нужно изменить кодировку в Symfony.Проблема в том, что есть производство, которое содержит некоторые данные.Есть ли способ перечислить все права доступа, все строки и сделать в строке / тексте изменения столбца кодировки?

1 Ответ

0 голосов
/ 17 апреля 2019

Я не нашел лучшего решения, поэтому я сделал переход:

    $entityManager = $this->container->get('doctrine.orm.entity_manager');
    $entities = $entityManager->getConfiguration()->getMetadataDriverImpl()->getAllClassNames();

    foreach ($entities as $className) {
        if ((strpos($className, "AppBundle") !== false) && (strpos($className, "Abstract") === false)) { //only my classes and no abstract class
            $records = $entityManager->getRepository($className)->findAll();
            $metadata = $entityManager->getClassMetadata($className);
            $entity_fields = $metadata->getFieldNames();
            foreach ($entity_fields as $field) {
                $type = $metadata->getTypeOfField($field);
                if ($type === "string") {
                    foreach ($records as $record) {
                        $oldValue = $metadata->getReflectionProperty($field)->getValue($record);
                        $metadata->getReflectionProperty($field)->setValue($record, " ");
                        $entityManager->persist($record);
                        $entityManager->flush();
                        $metadata->getReflectionProperty($field)->setValue($record, trim($oldValue));
                        $entityManager->persist($record);
                        $entityManager->flush();
                    }
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...