如何从Controller触发自定义方法的修订?

时间:2016-09-22 17:01:13

标签: laravel revisionable

使用RevisionableTrait时,如何触发它以保存特定模型的修订版本,所有这些都是从Controller完成的。

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

原因:我想在做一些与Revisionable支持的CRUD方法有关的事情时保存修订版。所以,我需要手动触发它。

实施例: This package正是我所描述的。我可以在需要时创建一个Activity。另外还附上一些额外的信息。

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

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

备注:

  • 也许我正在使用错误的库。原因我还想保存不编辑(创建,更新,删除)模型的操作。我的意思是,我想保存一些行动,即使他们没有修改模型,也只是使用它。
  • another package的相同问题。

1 个答案:

答案 0 :(得分:0)

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.createdrevisionable.saved或   revisionable.deleted