Hello All,
I'm new and having a problem with inheritance.
I have two things I want to solve
First:
Input: [b]console doctrine:generate:entities [/b]
Error: [b]No identifier/primary key specified for Entity 'Bundle
\RegisterBundle\Entity\Member'. Every Entity must have an identifier/
primary key. [/b]
The Primary key is not being inherited for some reason. How could I
use ORM to allow the parent to have a primary key?
NOTE: [b]I know that the orm works because if I put the ID into both
Member.php and AbstractMember.php, It works fine and creates the
tables.[/b]
Code:
// AbstractMember.php
[code]
/**
* @orm:Entity
* @orm:InheritanceType("SINGLE_TABLE")
* @orm:DiscriminatorColumn(name="discr", type="string")
* @orm:DiscriminatorMap({"member" = "AbstractMember", "cookon_member"
= "CookonMember"})
* @orm:Table(name="member")
*
* Abstract member class
*
* @author Disturbing
*/
abstract class AbstractMember
{
/**
* @orm:id
* @orm:Column(type="integer")
* @orm:GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @orm:email
* @orm:Column(type="string", length="32")
*
* @validation:NotBlank(message="You must enter your email
address.")
* @validation:Email(checkMX=true)
* @validation:MaxLength(32)
*/
private $email;
/**
* @orm:password
* @orm:Column(type="string", length="32")
*
* @validation:NotBlank(message="You must enter a password.")
* @validation:MinLength(6)
* @validation:MaxLength(32)
*/
private $password;
public function getEmail()
{
return $this->email;
}
public function setEmail($email)
{
$this->email = $email;
}
public function getPassword()
{
return $this->email;
}
public function setPassword($password)
{
$this->password = $password;
}
}
[/code]
Code:
// Member.php
[code]
<?php
namespace Bundle\RegisterBundle\Entity;
/**
* @orm:Entity
* @orm:inheritance(type="simple", extends="AbstractMember")
*
* Unique Member Class
*
* @author Disturbing
*
*/
class Member extends AbstractMember
{
/**
* @orm:first_name
* @orm:email
* @orm:Column(type="string", length="16")
*
* @validation:NotBlank(message="You must enter a first name.")
* @validation:MinLength(2)
* @validation:MaxLength(16)
* @validation:Regex(pattern="{^[A-Za-z]+$}", message="Last name
must only container letters.")
*/
private $firstName;
/**
* @orm:last_name
* @orm:Column(type="string", length="16")
*
* @validation:NotBlank(message="You must enter a last name.")
* @validation:MinLength(2)
* @validation:MaxLength(16)
* @validation:Regex(pattern="{^[A-Za-z]+$}", message="Last name
must only container letters.")
*/
private $lastName;
/**
* @orm:zip_code
* @orm:Column(type="integer")
*
* @validation:NotBlank(message="You must enter your zip code.")
* @validation:AssertType(type="numeric", message="You entered an
invalid zip code.")
* @validation:MaxLength(5)
*/
private $zipCode;
public function getFirstName()
{
return $this->firstName;
}
public function setFirstName($firstName)
{
$this->firstName = $firstName;
}
public function getLastName()
{
return $this->lastName;
}
public function setLastName($lastName)
{
$this->lastName = $lastName;
}
public function getZipCode()
{
return $this->zipCode;
}
public function setZipCode($zipCode)
{
$this->zipCode = $zipCode;
}
}
[/code]
Second Problem:
With Inheritance, why do I need @orm:DiscriminatorColumn(name="discr",
type="string").
I want to be inheriting with a SINGLE_TABLE and no references. Maybe
the discriminator key needs to be unique id? Please explain on this
if any.
I've looked all over google and can't find a solution, it seems just
basic: * @orm:inheritance(type="simple", extends="AbstractMember")
with YML configuration works fine from what people say, but it isn't
here.
Best Regards, Thanks in Advance and Thanks for the wonderful
Framework.
~DisTurBinG
--
If you want to report a vulnerability issue on symfony, please send it to
security at symfony-project.com
You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en