【问题标题】:How to trigger a revision for a custom method from a Controller?如何从控制器触发自定义方法的修订?
【发布时间】:2017-01-31 09:01:26
【问题描述】:

当使用RevisionableTrait 时,如何触发它来保存特定模型的修订,这一切都通过控制器完成。

用户发送电子邮件(此操作不会对任何模型进行 CRUD),但我想跟踪此操作。所以我做类似的事情: Action::make('send email', $user, $email, $time, $from, $to, $subject, ....)


原因:我想在执行 Revisionable 支持的 CRUD 方法以外的其他操作时保存修订。所以,我需要手动触发。

示例: This package 完全符合我的描述。我可以在需要时创建一个活动。再加上一些额外的信息。

示例:即使模型没有更改,我也想创建一个修订版!。可能触发此操作的一些操作可能是:用户发送电子邮件,用户查看电子邮件草稿。因此,我需要从控制器记录/注册该操作并保存它。这可能吗?

Revisionable 看起来它没有监听自定义触发器的事件。我错了吗?有解决方法吗?

注意事项:

  • 可能我使用了错误的库。因为我还想保存不编辑(创建、更新、删除)模型的操作。我的意思是,我想保存一些操作,即使他们没有修改模型,而是使用它。
  • another package 有同样的问题。

【问题讨论】:

  • 您是在问如何使用链接包保存修订版?
  • @Samsquanch 在this package怎么办?

标签: laravel revisionable


【解决方案1】:

The revisionable documentation 准确地告诉你需要做什么,将特征添加到你的模型中:

class YourModelHere extends Eloquent {

    use \Venturecraft\Revisionable\RevisionableTrait;

    public static function boot()
    {
        parent::boot();
    }

    // other model code goes here
}

调用boot methods when saving, saved, creating, and updating.就可以了

还提供了您可以关联的事件:

活动

每次创建模型修订时都会触发一个事件。你可以 收听revisionable.created、revisionable.saved 或 revisionable.deleted.

【讨论】:

  • 我更新了我的问题。我想我不够清楚。即使模型没有被修改,我也想记录。
  • 即使没有修改,为什么不直接调用save()呢?这应该会创建一个新修订版。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 1970-01-01
相关资源
最近更新 更多