Ошибка Catalyst FormFu DBIC — использование записи через точку в наборе результатов

Я унаследовал приложение Perl Catalyst, которое пытаюсь перенести на новый сервер. Приложение использует FormFu с модулем HTML::FormFu::Model::DBIC, используемым для загрузки данных из набора результатов.

У меня есть таблица DBIx, скажемMyTable, с автоматически созданной реализацией Result и пользовательской реализацией ResultSet. В пользовательской реализации ResultSet есть несколько подпрограмм, напримерsub my_sub, которые возвращают отфильтрованные подмножества данных.

В файле FormFu YAML следующее извлечет все записи из MyTable:

      elements:
  - type: Select
    model_config:
      resultset: MyTable

Это эквивалентно извлечению в контроллере$schema->resultset('MyTable'). Это правильно выполняется как на старом сервере, так и на новом сервере.

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

      elements:
  - type: Select
    model_config:
      resultset: MyTable.my_sub

Это эквивалентно извлечению в контроллере,$schema->resultset('MyTable')->my_sub. Это выполняется правильно на старом сервере. На новом сервере в FormFu выдает ошибку:

Не удается найти источник для MyTable.my_sub в /[...]/HTML/FormFu/Model/DBIC.pm

Я добавил отладку в модуль FormFu DBIC.pm, чтобы посмотреть, делает ли он что-то особенное. Код, который он вызывает,$schema->resultset($rs_name);гдеrs_nameэто имя, данное вresultsetпараметр "MyTable.my_sub" и$schemaимеет типMoose::Meta::Class::__ANON__::SERIAL, который я предполагаю, является своего рода оболочкой. В контроллере Catalyst схема имеет типmyapp::Schema.

Что мне не хватает? Есть ли какой-то параметр конфигурации, который мне нужно установить? Какой модуль мне нужно установить? Я не могу найти никакой документации или примеров, которые показывают набор результатов FormFu с точечной нотацией, но на старом сервере это работает.

0 ответов

Другие вопросы по тегам