我使用的是sylius/sylius 1.3.9和symfony/framework-bundle 4.2.4。对于要从签出中删除状态的文档,您必须替换Sylius核心包的整个配置。
我把我的配置放到了src/Resources/SyliusCoreBundle/config/app/state_machine/sylius_order_checkout.yml中
winzou_state_machine:
sylius_order_checkout:
class: '%sylius.model.order.class%'
property_path: checkoutState
graph: sylius_order_checkout
state_machine_class: '%sylius.state_machine.class%'
states:
cart: ~
addressed: ~
completed: ~
transitions:
address:
from: [cart, addressed]
to: addressed
complete:
from: [addressed]
to: completed
callbacks:
after:
sylius_process_cart:
on: [address]
do: ['@sylius.order_processing.order_processor', process]
args: [object]
sylius_create_order:
on: [complete]
do: ['@sm.callback.cascade_transition', apply]
args: [object, event, create, sylius_order]
sylius_save_checkout_completion_date:
on: [complete]
do: [object, completeCheckout]
args: [object]在此之后,我执行:
php bin/console cache:clear -e dev
[...]
php bin/console debug:winzou:state-machine sylius_order_checkout -e dev
+--------------------+
| Configured States: |
+--------------------+
| cart |
| addressed |
| shipping_selected |
| shipping_skipped |
| payment_skipped |
| payment_selected |
| completed |
+--------------------+
[...]什么都没变。当我在文档中跟踪链接时,它说:
束继承在Symfony 4.0中被删除。
那么,Symfony 4.2是否仍然可以像docs所建议的那样替换包的整个配置文件,或者这是否是Sylius 1.3中的回归,如果我没有做错什么,那么可能的解决方案是什么呢?
发布于 2019-04-01 07:01:20
您可以尝试在state_machine中创建config/packages目录,放入YAML文件并将configureContainer()方法中的这一行添加到src/config/packages中:
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{
...
$loader->load($confDir.'/state_machine/*'.self::CONFIG_EXTS, 'glob');
}https://stackoverflow.com/questions/55401650
复制相似问题