Мы работаем над проектом Silverstripe, используя Свободно для отображения нескольких переводов / локалей.
Мы хотим настроить некоторые из наших объектов данных, чтобы записи можно было переключать, чтобы показывать только в некоторыхСвободные места. Идея состоит в том, чтобы иметь поле флажка на объекте данных, где пользователи могут выбирать, в каком языковом стандарте они хотят, чтобы запись отображалась.
Вот пример объекта данных:
namespace Yard;
use SilverStripe\ORM\DataObject;
use TractorCow\Fluent\Model\Locale;
class Milkshake extends DataObject {
private static $table_name = 'Milkshake';
private static $db = [
'Title' => 'Varchar(255)'
]
private static $belongs_many_many = [
'ShowInLocale' => 'Locale'
];
}
затемнам нужно расширить класс Locale:
namespace AppExtensions;
use SilverStripe\ORM\DataExtension;
class LocaleExtension extends DataExtension
{
private static $many_many = [
'Milkshakes' => 'Yard\Milkshake'
];
}
и применить это расширение через YML:
TractorCow\Fluent\Model\Locale:
extensions:
- 'AppExtensions\LocaleExtension'
Пока все хорошо - но когда я пытаюсь просмотреть «Молочный коктейль» в админкеЯ получаю это сообщение об ошибке:
[Emergency] Uncaught LogicException: отношение_many_many Yard \ Milkshake.ShowInLocale указывает на Locale без сопоставления many_many
Насколько я могу сказать, ядобавили соответствующие отношения many_many
: записи базы данных созданы.
Любые идеи о том, как мне это исправить, приветствуются.