2013-08-16 6 views
0

방금 ​​Symfony 버전 2.3.3 응용 프로그램에 FosUserBundle을 설치했습니다. app/console doctrine을 실행할 때 사용자, 로그인, 등록 및 기타 등등을 관리 할 수 ​​있지만 MyApp \ UserBundle \ Entity의 사용자 클래스에 대한 변경 사항이 적용되지 않습니다. app/console doctrine을 실행할 때 적용되지 않습니다. 스키마 : 업데이트FOSUserBundle이 사용자 엔터티 변경 사항을 적용하지 않음

데이터베이스 구조는 포함 ID, 이 활성화 email_canonical 사용자 이름, username_canonical, 이메일,,, 소금, 비밀번호, LAST_LOGIN, 잠겨, 이 만료, expires_at, confirmation_token, password_requested_at,,174을개 역할, 이 credentials_expired, credentials_expire_at는

내가, 추가 요금 한 분야에 상관없이 내가 뭘 데이터베이스 구조에서 생성되고 있지 밤은.

내부 /app/AppKernel.php /app/config/config.yml

fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: MyApp\UserBundle\Entity\User 
    registration: 
     confirmation: 
      enabled: true 

내부와 내부

 new MyApp\UserBundle\MyAppUserBundle(), 
     new FOS\UserBundle\FOSUserBundle(), 

/src/MyApp/UserBundle/Entity/User.php

<?php 

namespace MyApp\UserBundle\Entity; 

use FOS\UserBundle\Model\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* User 
* 
* @ORM\Table(name="fos_user") 
* @ORM\Entity(repositoryClass="MyApp\UserBundle\Entity\UserRepository") 
*/ 
class User extends BaseUser 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

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

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="rate", type="integer") 
    */ 
    private $rate; 


    /** 
    * Get id 
    * 
    * @return integer 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set token 
    * 
    * @param string $token 
    * @return User 
    */ 
    public function setToken($token) 
    { 
     $this->token = $token; 

     return $this; 
    } 

    /** 
    * Get token 
    * 
    * @return string 
    */ 
    public function getToken() 
    { 
     return $this->token; 
    } 

    /** 
    * Set rate 
    * 
    * @param integer $rate 
    * @return User 
    */ 
    public function setRate($rate) 
    { 
     $this->rate = $rate; 

     return $this; 
    } 

    /** 
    * Get rate 
    * 
    * @return integer 
    */ 
    public function getRate() 
    { 
     return $this->rate; 
    } 
} 
+0

PHP 응용 프로그램/콘솔 교리 '의 결과의 새로운 기능 : 스키마 업데이 트를 --dump- SQL'? – dezull

+0

업데이트 할 것이 없습니다 - 데이터베이스가 이미 현재 엔터티 메타 데이터와 동기화되어 있습니다. – jamckp

+0

'/ src/MyApp/UserBundle/Rescources/doctrine/user.orm.whatever'의 실제 매핑을 새 필드로 업데이트 했습니까? – qooplmao

답변

0

생성자를 잊어 버리지 말고 캐시를 지우고 시도하십시오. php app/console doctrine:schema:update --force

네임 스페이스 Acme \ UserBundle \ Entity;

FOS \ UserBundle \ Model \ User를 BaseUser로 사용하십시오. Doctrine \ ORM \ Mapping을 ORM으로 사용하십시오.

/** * @ORM \ 법인 * @ORM의 \ 테이블 (이름 = "fos_user") 가 BaseUser를 확장 /클래스 사용자 { / * * @ORM의 \의 아이디 * @ORM의 \ 열 (유형 = "정수") * @ORM \ GeneratedValue (전략 = "자동") */ 보호 된 $ id;

public function __construct() 
{ 
    parent::__construct(); 
    // your own logic 
} 

}

+0

은 생성자를 추가했지만 여전히 운이 없습니다. – jamckp

0

것은 당신의 config.yml 파일에 MyUserBundle 매핑을 추가해야합니다

doctrine: 
    orm: 
      mappings: 
       FOSUserBundle: ~ 
       MyUserBundle: ~ 
+0

나는이 매핑을 추가했지만 아직 필드를 추가하지는 않습니다 – jamckp

+0

실제로 매핑에 MyUserBundle을 추가해야합니까, 아니면 이미 거기에 있었습니까? – Cerad

+0

MyUserBundle에는 yaml 또는 xml 매핑을 사용하는 다른 엔터티가 있습니까? 묶음에 주석/yml/xml을 섞을 수 없습니다. – Cerad

관련 문제