Php Symfony Gedmo时间标签&;不起作用

Php Symfony Gedmo时间标签&;不起作用,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,在symfony2.3应用程序中,我尝试使用gedmo-fo时间戳和可插入功能 这就是我安装它的方式: composer.json: "gedmo/doctrine-extensions": "dev-master", 更新: php composer.phar update 条令_extensions.yml: services: gedmo.listener.sluggable: class: Gedmo\Sluggable\SluggableListener

在symfony2.3应用程序中,我尝试使用gedmo-fo时间戳和可插入功能

这就是我安装它的方式:

composer.json:

"gedmo/doctrine-extensions": "dev-master",
更新:

php composer.phar update
条令_extensions.yml:

services:
    gedmo.listener.sluggable:
        class: Gedmo\Sluggable\SluggableListener
        tags:
            - { name: doctrine.event_subscriber, connection: default }
        calls:
            - [ setAnnotationReader, [ @annotation_reader ] ]

    gedmo.listener.timestampable:
        class: Gedmo\Timestampable\TimestampableListener
        tags:
            - { name: doctrine.event_subscriber, connection: default }
        calls:
            - [ setAnnotationReader, [ @annotation_reader ] ]
config.yml:

imports:
    ...
    - { resource: doctrine_extensions.yml }
实体:

namespace Too\EmployeeBundle\Entity;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;

/**
 * Too\EmployeeBundle\Entity\Employee
 *
 * @ORM\Table(name="Employee")
 * @ORM\Entity(repositoryClass="Too\EmployeeBundle\Entity\EmployeeRepository")
 */
class Employee
{
    ...
    /**
     * @var string $nomSlug
     *
     * @Gedmo\Slug(fields={"nomSlug"}, updatable=true, separator="_")
     * @ORM\Column(name="nomSlug", type="string", length=100, nullable=true)
     */
    private $nomSlug;

    /**
     * @var datetime $cree_le
     *
     * @Gedmo\Timestampable(on="create")
     * @ORM\Column(type="datetime")
     */
    private $cree_le;

    /**
     * @var datetime $modifie_le
     *
     * @Gedmo\Timestampable(on="update")
     * @ORM\Column(type="datetime")
     */
    private $modifie_le;
    ...
我以为这就是我必须做的,但现在的行为很奇怪:

创建时,将填充创建和修改日期,但不填充Slagable字段(Nomslag)

尝试更新时,我收到以下错误:

This year is invalid
500 Internal Server Error - TransformationFailedException
如果你需要更多的代码,请告诉我

能在这件事上帮我真是太好了

编辑:

对于sluggable-你是对的-我的复制粘贴错误。现在可以了

但我在尝试更新时仍然存在“今年无效”错误。 事实上,更新已经完成,但时间标记字段在数据库中设置为0000-00-00:00:00。当控件尝试用更新的数据再次呈现编辑页时,错误是因为无效的日期

现在我想也许我应该引入时间标记字段的隐藏值?! 即使这对我来说没有逻辑。 但它无论如何都不起作用:数据不再更新,在flash通知中我显示的只是“flash.update.error”-因此表单无效

下面是edit.html.twig的最后一段代码:

<form class="well" action="{{ path('employee_update', { 'id': entity.id }) }}" method="post" {{ form_enctype(edit_form) }}>
    <input type="hidden" name="_method" value="PUT" />
    <div>
        {{ form_label(edit_form.nom) }}
        {{ form_errors(edit_form.nom) }}
        {{ form_widget(edit_form.nom) }}
    </div>
    <div>
        {{ form_label(edit_form.email) }}
        {{ form_errors(edit_form.email) }}
        {{ form_widget(edit_form.email) }}
    </div>
    <div>
        {{ form_label(edit_form.telephone) }}
        {{ form_errors(edit_form.telephone) }}
        {{ form_widget(edit_form.telephone) }}
    </div>
    <div>
        {{ form_label(edit_form.actif) }}
        {{ form_errors(edit_form.actif) }}
        {{ form_widget(edit_form.actif) }}
    </div>

    <input type="hidden" id="too_employeebundle_employee_cree_le" name="too_employeebundle_employee[cree_le]" value="{{ entity.creele|date('Y-m-d H:i:s') }}">
    <input type="hidden" id="too_employeebundle_employee_modifie_le" name="too_employeebundle_employee[modifie_le]" value="{{ entity.modifiele|date('Y-m-d H:i:s') }}">
    {{ form_widget(edit_form._token) }}
...

{{form_label(edit_form.nom)}
{{form_errors(edit_form.nom)}
{{form_小部件(edit_form.nom)}
{{form_label(编辑_form.email)}
{{form_errors(edit_form.email)}
{{form_小部件(编辑_form.email)}
{{表单标签(编辑表单电话)}
{{表单错误(编辑表单.电话)}
{{form_小部件(编辑_form.telephone)}
{{form_label(edit_form.actif)}
{{form_errors(edit_form.actif)}
{{form_小部件(edit_form.actif)}
{{form_小部件(编辑_form._令牌)}
...

不确定它是否是问题的原因,但是
nomSlug
应该从其他字段(如标题、发布日期)而不是从自身生成。