【问题标题】:CakePHP 3 - Event on Model->link(...)CakePHP 3 - 模型上的事件->链接(...)
【发布时间】:2018-07-20 14:24:29
【问题描述】:

我正在使用UsersApps 开发应用程序管理面板。我想将更改(添加/编辑/删除)记录到应用程序和用户。这是我通过使用afterSave()afterDelete() 回调实现的自定义行为。

请注意,应用程序hasMany 用户和用户hasMany 应用程序具有apps_users 连接表。我为AppsUsers 创建了模型。

但是,我还想记录应用程序和用户之间的链接(权限)。授予权限后,将使用Apps->Users->link($app, [$user]) 创建用户和应用程序之间的链接。

问题:如何将回调附加到$...->link(...) 调用?

据我所知,它没有定期回调,就像 save()delete() 一样

【问题讨论】:

  • linkunlink 应该触发联接表上的回调,而不是直接触发 AppsUsers
  • 我试了一下,效果很好。关键是永远不要为连接表创建模型,通常没有必要。
  • 当连接表是“唯一”连接表时,不需要为它创建模型。但是当它需要做更多的事情时,很高兴为您提供选择。

标签: events cakephp-3.0 models jointable


【解决方案1】:

当我注意到这一点时浏览我自己的问题。

解决方案是为链接表创建表对象并为这些表添加afterSaveafterDelete 事件。可以创建附加到这些链接表对象以重用逻辑的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多