如何解决提交表单后 Sylius 丢失配置
我正在尝试基于一个实体 MenuItem 创建一个动态菜单,该实体可以有一个父项和一个子项。 我使用这个配置:
#include<iostream>
int main()
{
int num=4;
while (num)
{
switch(num)
{
default:
case 1:
std::cout<<"Executing "<<num<<"\n";
case 2:
case 3:
break;
}
num--;
}
return 0;
}
sylius_resource:
resources:
app.menu_item:
classes:
model: App\Infrastructure\Doctrine\Entity\Menu\DoctrineMenuItem
repository: App\Infrastructure\Doctrine\Repository\DoctrineMenuItemRepository
factory: App\Infrastructure\Factory\Menu\MenuItemFactory
form: App\Infrastructure\Form\Admin\Menu\MenuItemType
sylius_grid:
grids:
app_admin_menu_item:
driver:
name: doctrine/orm
options:
class: App\Infrastructure\Doctrine\Entity\Menu\DoctrineMenuItem
repository:
method: getFirstLevelItemsQB
sylius_grid:
grids:
app_admin_menu_group:
driver:
name: doctrine/orm
options:
class: App\Infrastructure\Doctrine\Entity\Menu\DoctrineMenuItem
repository:
method: getGroupsByParentIdQB
arguments:
parentId: $parentId
app_admin_menu_item:
resource: |
alias: app.menu_item
section: admin
templates: "@SyliusAdmin\\Crud"
redirect: index
grid: app_admin_menu_item
permission: true
vars:
index:
icon: list
type: sylius.resource
app_admin_menu_item_index:
path: /
methods: [GET]
defaults:
_controller: app.controller.menu_item:indexAction
_sylius:
repository:
method: getFirstLevelItemList
template: "@SyliusAdmin/Crud/index.html.twig"
grid: app_admin_menu_item
section: admin
permission: true
app_admin_group_create:
path: /new
methods: [GET,POST]
defaults:
_controller: app.controller.menu_item:createAction
_sylius:
section: admin
permission: true
template: "@SyliusAdmin/Crud/create.html.twig"
redirect:
route: app_admin_group_index
parameters: { parentId: $parentId }
factory:
method: createGroup
arguments:
- expr:notFoundOnNull(service('app.repository.menu_item').find($parentId))
vars:
route:
parameters:
parentId: $parentId
问题是,当我提交菜单组项的表单时,Sylius 丢失了配置(尤其是工厂的配置)并获得了父项的配置。所以表单提交后工厂返回的对象不是我所期望的。
当我试图覆盖默认的 FormType 时会发生这个问题,没有它,它工作正常。
有没有可能强迫他使用正确的配置?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。