自定义资源的活动?

时间:2016-09-01 11:01:21

标签: resources sylius

我已使用ResourcesBundle创建了一个新实体,但在个人资料中我无法看到Events

我必须手动制作吗?

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

添加信息

嗨anothertime 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

我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

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

如果您关注使用自己的资源使用ResourceBundle的Sylius文档,您会发现以下配置:

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.create
  • dinamic.post.post_create
  • dinamic.post.pre_update
  • dinamic.post.update
  • dinamic.post.post_update
  • dinamic.post.pre_delete
  • dinamic.post.delete
  • dinamic.post.post_delete