【问题标题】:Events for custom resources?自定义资源的事件?
【发布时间】:2016-09-01 11:01:21
【问题描述】:

我用ResourcesBundle 创建了一个新实体,但在分析器上我看不到Events

我必须手动创建吗?

sylius.book.pre_create 创建一个 EventListener 不会做任何事情。

添加信息

你好,下次来 lchrusciel。

这是我的资源配置:

dinamic_sylius_post:
    resource: |
        alias: dinamic.post
        path: blog/post
    type: sylius.resource

dinamic_sylius_admin_post:
    resource: |
        alias: dinamic.post
        section: admin
        templates: SyliusAdminBundle:Crud
        except: ['show', 'delete']
        redirect: index
        grid: dinamic_sylius_blog_post
    type: sylius.resource
    prefix: admin/

在我的捆绑配置中我有这个:

sylius_resource:
    resources:
        dinamic.post:
            classes:
                model: Dinamic\Bundle\SyliusBlogBundle\Entity\Post
                form:
                    default: Dinamic\Bundle\SyliusBlogBundle\Form\PostType

那我做错了什么?

【问题讨论】:

    标签: resources sylius


    【解决方案1】:

    如果它是您的自定义资源,您应该寻找app.book.pre_create 事件。

    如您所见,here 事件名称取决于预定义 Sylius 资源的应用程序名称 sylius,但如果您定义了自己的,通常是 app

    如果您遵循 Sylius 文档,了解将 ResourceBundle 与您自己的资源一起使用,您会发现以下配置:

    sylius_resource:
        resources:
            app.book:
                classes:
                    model: AppBundle\Entity\Book
    

    这个配置的重要部分是资源app.book 的别名。应用程序名称(app)和资源名称(book)的点拆分别名。

    同样的规则适用于 crud 生成配置:

    app_book:
    resource: |
        alias: app.book
    type: sylius.resource_api
    

    使用app作为应用名称是Sylius推荐的,但是你可以任意选择其他的。

    编辑

    在您的示例中,这是一个重要部分:

    sylius_resource:
        resources:
            dinamic.post:
                classes:
    

    据此,dinamic 是应用程序名称,post 是资源名称。所以应该触发以下事件:

    • dinamic.post.pre_create
    • dinamic.post.post_create
    • dinamic.post.pre_update
    • dinamic.post.post_update
    • dinamic.post.pre_delete
    • dinamic.post.post_delete

    【讨论】:

    • 正确!但我在 Symfony2 调试器上找不到这些事件。 php app/console debug:event-dispatcher | grep dinamic 无返回 :(
    • 当然,因为根据这个命令定义它只返回Registered Listeners Grouped by Event。因此,如果没有注册监听器,则不会列出事件。
    • 我发现了错误,是我的错误,我声明了我的服务,但不在services: 配置下。对不起
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2011-01-20
    • 2016-09-01
    • 1970-01-01
    • 2016-08-11
    • 2023-04-06
    • 1970-01-01
    • 2017-05-17
    相关资源
    最近更新 更多