0

次の User エンティティとフィクスチャ ファイルがありますが、app/console doctrine:fixtures:load を実行すると、次のエラーが発生し、理由がわかりません。日付フィールドを削除すると、フィクスチャは正常に生成されます。ここで何が欠けていますか?ありがとう。

エラー: created_at を AppBundle\Entity\User オブジェクトに割り当てる方法を特定できませんでした

<?php

namespace AppBundle\Entity;

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

/**
 * User
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="AppBundle\Entity\UserRepository")
 */
class User
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(name="role", type="string", length=255)
     */
    private $role;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=255)
     */
    private $email;

    /**
     * @var string
     *
     * @ORM\Column(name="phone", type="string", length=16)
     */
    private $phone;

    /**
     * @var \DateTime
     *
     * @Gedmo\Timestampable(on="create")
     * @ORM\Column(name="created_at", type="datetime", nullable=true)
     */
    private $createdAt;

    /**
     * @var \DateTime
     *
     * @Gedmo\Timestampable(on="update")
     * @ORM\Column(name="updated_at", type="datetime", nullable=true)
     */
    private $updatedAt;

そして私のフィクスチャyml:

AppBundle\Entity\User:
user{1..10}:
    name: <firstName()> <lastName()>
    role: employee
    email: <email()>
    phone: <numberBetween(1555000000, 1555999999)>
    created_at: <datetimeBetween('-5 days', 'now')>
    updated_at: <datetimeBetween('-5 days', 'now')>
4

2 に答える 2

1

確かではありませんが、エラーが言っていることだけで、命名が正しくないと思います。私はそれがあるべきだと思います:

createdAt: <datetimeBetween('-5 days', 'now')>
updatedAt: <datetimeBetween('-5 days', 'now')>
于 2015-08-09T11:53:17.893 に答える
0

残念ながら、タイムスタンプ可能なフィールドを手動で設定することはできません。ドキュメントエンティティの例では、そのようなフィールドのセッターはまったくありません。したがって、フィクスチャでは単純にcreated_atand を削除できますupdated_at(これらは自動的に設定されます):

ppBundle\Entity\User:
user{1..10}:
    name: <firstName()> <lastName()>
    role: employee
    email: <email()>
    phone: <numberBetween(1555000000, 1555999999)>
于 2015-08-08T19:51:49.290 に答える