小编Ahm*_*oui的帖子

Laravel中的有限状态机和持久性

我想知道Laravel是否有一些内置的状态机机制?如果没有,那么使用这个名为Finite(https://github.com/yohang/Finite)的优秀库的最佳方法是什么.

这就是我所拥有的(用例:工作板):

  • 用户创建要约(初始状态:已创建)
  • 用户预览优惠(州:草稿)
  • 用户发布了报价(最终状态:已发布)

首先,我让我的模型"有状态":

use Finite\StatefulInterface;
class Offer extends Eloquent implements StatefulInterface {
Run Code Online (Sandbox Code Playgroud)

然后在我的商品控制器的商店行动中:

$stateMachine = new StateMachine();
$stateMachine->addState(new State('created', StateInterface::TYPE_INITIAL));
$stateMachine->addState('draft');
$stateMachine->addState(new State('published', StateInterface::TYPE_FINAL));

$stateMachine->addTransition('preview', 'created', 'draft');
$stateMachine->addTransition('publish', 'draft', 'published');

$stateMachine->setObject($offer);
$stateMachine->initialize();
Run Code Online (Sandbox Code Playgroud)

根据我的理解,当用户预览商品时(例如),我应该致电:

$stateMachine->apply('preview').
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如何跟踪应用程序中的所有状态和转换?我是否在我的商品模型中存储状态?我是否要创建其他表格?

database state-machine fsm laravel

6
推荐指数
1
解决办法
2879
查看次数

在CKEditor对话框中收听单击事件

我有一个ckeditor实例,我使用以下命令添加了一个自定义对话框:

CKEDITOR.dialog.add('quicklinkDialog', function(editor) {
   return {
     title: 'Quick Links',
     minWidth: 400,
     minHeight: 200,

     contents: [
       {
        id: 'tab1',
        label: 'Add a quick link',
        elements: [
        {
         type: 'html',
         html: '<p>This is some text and then: <a href="">Click me!</a></p>'
        }]
   };
 });
Run Code Online (Sandbox Code Playgroud)

我想在对话框内的链接上添加一个"click"事件监听器.单击该链接时,内容将插入到我的textrea中(对话框也将关闭).

谁知道我怎么做到这一点?提前致谢!

javascript dialog ckeditor

2
推荐指数
1
解决办法
2556
查看次数

标签 统计

ckeditor ×1

database ×1

dialog ×1

fsm ×1

javascript ×1

laravel ×1

state-machine ×1