【发布时间】:2015-05-05 14:53:31
【问题描述】:
谁能提供 Blameable Gedmo 扩展的完整示例,尤其是 Blameable Listener 的配置?
我正在使用文档提供的代码:
* @var User $createdBy
*
* @Gedmo\Blameable(on="create")
* @ORM\ManyToOne(targetEntity="Cf\UserBundle\Entity\User")
* @ORM\JoinColumn(name="createdBy", referencedColumnName="id")
*/
private $createdBy;
/**
* @var User $updatedBy
*
* @Gedmo\Blameable(on="update")
* @ORM\ManyToOne(targetEntity="Cf\UserBundle\Entity\User")
* @ORM\JoinColumn(name="updatedBy", referencedColumnName="id")
*/
private $updatedBy;
但 createdBy 和 updatedBy 数据库列始终为 NULL。
文档提供了配置其他侦听器的示例(例如,我开始工作的可时间戳记),但我找不到可指责的侦听器的示例或文档。
感谢您的帮助!!
================================================ ================
编辑回答让:
是的,我添加了以下用途:
use Gedmo\Mapping\Annotation as Gedmo;
我还将 Timestampable 与提供的特征一起使用:
use Gedmo\Timestampable\Traits\TimestampableEntity;
// doctrine comments removed
class Document
{
use TimestampableEntity;
...
}
时间戳配置为:
services:
gedmo.listener.timestampable:
class: Gedmo\Timestampable\TimestampableListener
tags:
- { name: doctrine.event_subscriber, connection: default }
calls:
- [ setAnnotationReader, [ @annotation_reader ] ]
Timespmbable 工作得很好。
我为可指责的侦听器尝试了类似的配置,因为它有一个setUserValue 方法:
gedmo.listener.blameable:
class: Gedmo\Blameable\BlameableListener
tags:
- { name: doctrine.event_subscriber, connection: default }
calls:
- [ setAnnotationReader, [ @annotation_reader ] ]
- [ setUserValue, [ @security.token_storage ] ]
但它不起作用,我收到此错误(我的项目中使用了 4 个捆绑包):
在链配置的命名空间 Cf\UserBundle\Entity、Cf\DocumentBundle\Entity、Cf\SouffleBundle\Entity、FOS\ 中找不到类“Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage”用户包\模型
我知道它以某种方式缺少用户 ID 或安全令牌作为参数,但我无法在任何地方找到示例。 这就是我卡住的地方。有什么想法吗?
【问题讨论】:
-
您是否将
use放在了班级的首位?你能给我们看看吗? -
此外,Blameable 仅在使用安全上下文创建\更新实体并包含用户令牌时才有效,该用户令牌已被考虑并保留在您的字段中。
-
你使用https://github.com/stof/StofDoctrineExtensionsBundle吗?我有它和可责备的作品。
-
你有没有得到这个工作?我也有类似的问题?
-
你使用的是 Symfony >= 2.6 还是 Symfony github.com/Atlantic18/DoctrineExtensions/blob/master/doc/… 的说明添加 DoctrineExtensionsListener? (注意:此代码仅适用于 Symfony = 2.6,您必须更改 onKernelRequest 方法)
标签: php symfony doctrine-orm