Nano Hash - криптовалюты, майнинг, программирование

Импорт файла в расширение

Я использую для импорта файлов из другого приложения через JSON в TYPO3. Импортированные файлы сохраняются в специальном хранилище. Связанные записи создаются в sys_file. Пока все выглядит хорошо. Теперь я хотел бы добавить импортированные файлы в определенную таблицу. Для этого я использую подход новостного расширения V8.5.2 согласно NewsImportService.php. Существует функция HydrNewsRecord(), которая создает связь с медиа (файлом). Поэтому я использую следующий код:

$media = $objectManager->get(\Zhaw\ZhawContinuingEducation\Domain\Model\FileReference::class);
$media->setFileUid($file->getUid());
\\ add new file to field
$newCourse->addContactImage1($media);
...
\\ add to table course
$courseRepo->add($newCourse);
...
$persistenceManager->persistAll();

Во время теста я всегда получаю сообщение об ошибке (из-за диспетчера постоянства): Таблица 'typo3_www.tx_zhawcontinuingeducation_domain_model_filereference' не существует

Я также включил в домен/модель FileReference.php и добавил в setup.typoscript:

objects {
        TYPO3\CMS\Extbase\Domain\Model\FileReference.className = Zhaw\ZhawContinuingEducation\Domain\Model\FileReference
}
persistence {
    storagePid =
    classes {
        Zhaw\ZhawContinuingEducation\Domain\Model\FileReference {
            mapping {
                tableName = sys_file_reference
                columns {
                    uid_local.mapOnProperty = originalFileIdentifier
                }
            }
        }
    }
}

Таблица tx_zhawcontinuingeducation_domain_model_filereference не нужна, так как она уже существует в ядре. Кто-нибудь знает, чего мне не хватает?


  • Какую версию TYPO3 вы используете? 16.03.2021
  • Ах да забыл упомянуть. Мы используем TYPO3 V10.4.12 16.03.2021

Ответы:


1

Сопоставление классов моделей, подобное этому, в TypoScript больше невозможно, начиная с TYPO3 10.0. Вам нужно будет добавить файл EXT:extension/Configuration/Extbase/Persistence/Classes.php к вашему расширению со следующим содержимым:

<?php
declare(strict_types = 1);

return [
    \Zhaw\ZhawContinuingEducation\Domain\Model\FileReference::class => [
        'tableName' => 'sys_file_reference',
        'properties' => [
            'originalFileIdentifier' => [
                'fieldName' => 'uid_local'
            ],
        ],
    ],
];

Подробнее об этом вы можете узнать здесь: https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/10.0/Breaking-87623-ReplaceConfigpersistenceclassesTyposcriptConfiguration.html

16.03.2021
  • Большое спасибо, вы сделали мой день. Это удержало меня от решения моей проблемы. После того, как я изменил свой старый код, он работает как шарм. 16.03.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..