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

Typo3 7.2 добавляет ссылку на файл в модель расширения

Я использую Typo 7.2 и ищу ответ на следующий вопрос:

Как программно добавить созданный файл как FileReference в модель расширения?

Сначала немного информации о моих достижениях / попытках.

ГОТОВО. Командный контроллер запускает папки, ищет конкретное изображение и создает размытый файл с помощью графических функций. Сгенерированный файл добавляется в хранилище как отдельный простой файл и отображается в таблице sys_file.

$fileObject = $posterStorage->addFile(
  $convertResult[3],
  $posterStorage->getFolder($blurFolderName),
  $newFileName);

ЧАСТИЧНО СДЕЛАНО. Теперь мне нужно добавить сгенерированный файл в качестве ссылки на мою модель. Проблема в том, что я могу это сделать, но только взломав ядро ​​- что неприемлемо - и не могу сделать это правильно. Модель говорит:

public function addPosterWebBlur(
\TYPO3\CMS\Extbase\Domain\Model\FileReference $posterWebBlur
) {
  $this->posterWebBlur->attach($posterWebBlur);
}

Итак, мне удалось расширить класс FileReference:

class FileReference extends \TYPO3\CMS\Extbase\Domain\Model\FileReference {
  public function setFile(\TYPO3\CMS\Core\Resource\File $falFile) {
    $this->$uidLocal = (int)$falFile->getUid();
  }
}

Ссылка не устанавливается, и я просто получаю следующую ошибку в бэкэнде:

Table 'db_name.tx_ext_name_domain_model_filereference' doesn't exist.

ОБНОВЛЕНИЕ После интеграции данных от Frans в ext_typoscript_setup.txt, модель может быть сохранена, создает запись sys_file_reference и прекрасно работает в серверной части. Но есть несколько возможностей удовлетворить все потребности:

  1. Таблица sys_file_reference не содержит значения для table_local, тогда как все записи, созданные внутренним пользователем, содержат sys_file как значение.
  2. То же самое относится к l10n_diffsource, который содержит некоторый большой двоичный объект. Эта запись вставляется в таблицу sys_file_reference после сохранения записи вручную через бэкэнд.
  3. Идентификатор pid для file_reference должен быть установлен через setPid ($ model-> getPid ()), это нормально?
  4. Cruser_id всегда равен нулю. Это правильный способ?
  5. При попытке удалить файл (который был добавлен в модель с возможностями бэкэнда) через файловый менеджер я получаю предупреждение, что ссылки на этот файл существуют. Это не относится к программно добавленной fileReference. Также ссылки, перечисленные под файлом (при нажатии на «Информация» для сгенерированного файла в серверном файловом менеджере), не отображаются в списке. Они попадают в список, когда я вручную ввожу значение "sys_file" в таблицу sys_file_reference.
  6. Поскольку пример Хельмута Хуммелса содержит дополнительные данные, мне интересно, не пропущу ли я что-то.
  7. Ссылка на файл используется внутри хранилища объектов, но поскольку функция addImage вызывает только objectStorage-> attach, я думаю, что это должно быть нормально, и никаких дополнительных действий objectStorage не требуется. Правильный?

Ответы:


1

Вы должны указать уровню сохраняемости extbase использовать правильную таблицу. См., Например, этот пример https://github.com/helhum/upload_example/blob/master/ext_typoscript_setup.txt

гр. Франс

21.07.2015

2

Попытка ответить 1) См. https://github.com/helhum/upload_example/blob/master/Configuration/TCA/tx_uploadexample_domain_model_example.php#L128 Вероятно, вам следует проверить определение TCA для вашего поля posterWebBlur. Второй параметр getFileFieldTCAConfig () TT

25.09.2015
Новые материалы

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

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

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

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

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

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

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