Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 16th, 2012  |  syntax: None  |  size: 1.50 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How do you extend an entity in Symfony2 like you used to be able to in Symfony?
  2. namespace AcmeWebsiteBundleEntity;
  3.  
  4. use DoctrineORMMapping as Orm;
  5.  
  6. /**
  7.  * @OrmMappedSuperclass
  8.  */
  9. class BaseEntity {
  10.  
  11. }
  12.        
  13. namespace AcmeWebsiteBundleEntity;
  14.  
  15. use DoctrineORMMapping as Orm;
  16.  
  17. /**
  18.  * @OrmMappedSuperclass
  19.  */
  20. class BaseAuditableEntity extends BaseEntity {
  21.  
  22.     private $createdBy;
  23.  
  24.     /**
  25.      * @OrmColumn(type="datetime", name="created_at")
  26.      */
  27.     private $createdAt;
  28.  
  29.     /**
  30.      * @OrmManyToOne(targetEntity="User")
  31.      * @OrmJoinColumn(name="updated_by", referencedColumnName="id")
  32.      */
  33.     private $updatedBy;
  34.  
  35.     /**
  36.      * @OrmColumn(type="datetime", name="updated_at")
  37.      */
  38.     private $updatedAt;
  39.  
  40.     // Setters and getters here
  41. }
  42.        
  43. namespace AcmeWebsiteBundleEntity;
  44.  
  45. use AcmeWebsiteBundleEntityBaseAuditableEntity;
  46.  
  47. use DoctrineORMMapping as Orm;
  48.  
  49. /**
  50.  * @OrmEntity(repositoryClass="AcmeWebsiteBundleEntityRepositoryUserRepository")
  51.  * @OrmTable(name="acme_user")
  52.  */
  53. class User extends BaseAuditableEntity implements AdvancedUserInterface, Serializable
  54. {
  55.     /**
  56.      * @OrmId
  57.      * @OrmColumn(type="integer")
  58.      * @OrmGeneratedValue
  59.      */
  60.     private $id;
  61.  
  62.     /**
  63.      * @OrmColumn(type="string", name="first_name")
  64.      */
  65.     private $firstName;
  66.  
  67.     /**
  68.      * @OrmColumn(type="string", name="last_name")
  69.      */
  70.     private $lastName;
  71.  
  72.     /**
  73.      * @OrmColumn(type="string", unique="true")
  74.      */
  75.     private $email;
  76.  
  77.     // Other properties
  78.  
  79.     // Constructor
  80.  
  81.     // Setters and getters
  82. }