@maches
Начинающий разработчик-лентяй.

Каким образом при создани кастомного типа можно корректировать при помощи запроса набор элементов?

93810f16ef4b45ccad2e785d8ae979cc.png
Есть три вышеуказанные сущности, для каждой из которых создан класс администратора для Sonata. Мне необходимо создать форму для редактирования компаний. Сущность Параметр необходима для динамической настройки сайта. У параметра есть тип ( 4 штуки: текст, чекбокс, радио и селект).
Я встраиваю в Компанию Параметры, а в админском классе параметров использую кастомные типы для каждого параметра. Однако, как указано на схеме связей, я получаю список элементов ни коим образом не свзяанный с компанией, которую я редактирую. Выглядит это примерно так:
Внутри CompanyAdmin:
$formMapper
                ->with('General')
                    ->add('name', 'text', array('label' => 'Name'))
                    ->add('website', null, array('label' => 'Website'))
                    ->add('about', null, array('label' => 'About', 'required' => false))
                ->end()
                ->add('params','sonata_type_collection');

Внутри ParameterAdmin
if($param->getType() == 0) {       
        $formMapper->add('elements', 'element_text', array('company_id' => true) );
        } elseif($param->getType() == 1) {
            $formMapper->add('elements','element_checkbox', $options );
        }elseif($param->getType() == 2){
            $formMapper->add('elements','element_radio', $options );
        }elseif($param->getType() == 3) {
            $formMapper->add('elements','element_select' ,$options);
        }

Каким образом можно связать сущности Компании и Элементов на этой странице? Или каким образом при создани кастомного типа можно корректировать при помощи запроса набор элементов?
  • Вопрос задан
  • 299 просмотров
Решения вопроса 1
@maches Автор вопроса
Начинающий разработчик-лентяй.
weblogs.sqlteam.com/davidm/articles/12117.aspx Вот описание и гайд EAV модели. Нужно модифицировать Элемент в таблицу с композитным ключом. Тогда связь Компании и параметров просто не нужна, так как компания всегда будет связана с Элементом через Параметр. Однако, придется поморочиться со слоем для управления всей этой бойдой.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Первое что бросилось в глаза - что нет Another в таблице Element! )
Это вообще откуда?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы