1

を使用したかったのでFOSUserBundle、インストールして最初に注釈を設定しましたが、他のエンティティがあったため、yaml を選択しました。

ドキュメントに書かれているとおりに、yaml ファイルを作成し、必要なフィールドをいくつか追加しました。エンティティ自体を生成し、php ファイルでBaseUserクラスを拡張しました。

最初にSQLを更新したいときにエラーをスローして保護またはパブリックに変更したため、その部分は機能していますが、更新後、ベースFOSフィールドはDBにありません。

ここに User.orm.yml があります

Plastic\PublicBundle\Entity\User:
type:  entity
lifecycleCallbacks:
    prePersist: [setCreated, setModified]
    preUpdate: [setModified]
oneToMany:
    albums:
        targetEntity: Album
        mappedBy: user
    images:
        targetEntity: Image
        mappedBy: user
table: users
id:
    id:
        type: integer
        generator:
            strategy: AUTO
fields:
    firstName:
        type: string
        length: 50
    lastName:
        type: string
        length: 50
    gender:
        type: boolean
    dateOfBirth:
        type: date

そして、最初の関連部分を持つ User.php エンティティ:

<?php

namespace Plastic\PublicBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

use FOS\UserBundle\Model\User as BaseUser;

/**
 * User
 */
class User extends BaseUser
{

/**
 * @var integer
 */
protected $id;

/**
 * @var string
 */
private $firstName;

/**
 * @var string
 */
private $lastName;
    /**
 * Constructor
 */
public function __construct()
{
    parent::__construct();
    $this->albums = new \Doctrine\Common\Collections\ArrayCollection();
    $this->images = new \Doctrine\Common\Collections\ArrayCollection();
}

私の ORM の config.yml では、自動マッピングが true に設定されています。

4

1 に答える 1