提问者:小点点

访问模型中的身份验证组件


我想创建一个行为,当使用登录用户的id保存记录时,自动填充“created_by”字段,就像时间戳使用“created”一样。然而,很显然,你可以得到$-

我不得不求助于更新控制器的add()方法中的请求数据,然后再进行保存()调用,这可以工作,但不是DRY。我想让Bake为任何具有created_by字段的实体添加模型表类中的行为。

你知道我怎么能按照蛋糕的意图,在行为上做到这一点吗?


共2个答案

匿名用户

一种可能性是使用事件系统。我个人通过使用组件和通过模型进行通信的行为来实现这一点。在保存之前事件。基本上,组件负责添加一个新的监听器,该监听器将函数传递给允许检索经过身份验证的用户id的行为。

您可以在这里查看这两个类的代码:UserLinkComponent、UserLinkBehavior

并使用它们:

控制器:

$this->loadComponent('Alaxos.UserLink');

模型\表格:

$this->addBehavior('Alaxos.UserLink');

匿名用户

责备行为符合你的需要。你可以使用它或者研究它的代码来实现你自己的。