I get exception Uncaught exception 'Doctrine\ORM\Mapping\MappingException' with message 'Class "Users" is not a valid entity or mapped super class
every time when I run the next code:
test.php
<?php
require_once "vendor/autoload.php";
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
$paths = array(dirname(__FILE__)."/entities");
$isDevMode = false;
// the connection configuration
$dbParams = array(
'driver' => 'pdo_mysql',
'user' => 'root',
'password' => 'pass',
'dbname' => 'snabcentr',
);
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$em = EntityManager::create($dbParams, $config);
$user = $em->find("Users", 5);
entities/Users.php
<?php
use Doctrine\ORM\Mapping as ORM;
/**
* Users
*
* @ORM\Table(name="users")
* @ORM\Entity
*/
class Users
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=255, nullable=true)
*/
private $email;
/**
* @var string
*
* @ORM\Column(name="password", type="string", length=255, nullable=true)
*/
private $password;
/**
* @var string
*
* @ORM\Column(name="type", type="string", nullable=true)
*/
private $type;
/**
* @var string
*
* @ORM\Column(name="client_inn", type="string", length=255, nullable=true)
*/
private $clientInn;
/**
* @var string
*
* @ORM\Column(name="client_ogrn", type="string", length=255, nullable=true)
*/
private $clientOgrn;
/**
* @var string
*
* @ORM\Column(name="client_rs", type="string", length=255, nullable=true)
*/
private $clientRs;
/**
* @var string
*
* @ORM\Column(name="client_ks", type="string", length=255, nullable=true)
*/
private $clientKs;
/**
* @var string
*
* @ORM\Column(name="client_bik", type="string", length=255, nullable=true)
*/
private $clientBik;
/**
* @var string
*
* @ORM\Column(name="client_uaddress", type="string", length=255, nullable=true)
*/
private $clientUaddress;
/**
* @var string
*
* @ORM\Column(name="client_faddress", type="string", length=255, nullable=true)
*/
private $clientFaddress;
/**
* @var string
*
* @ORM\Column(name="client_daddress", type="string", length=255, nullable=true)
*/
private $clientDaddress;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=true)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="notes", type="text", nullable=true)
*/
private $notes;
/**
* @var \DateTime
*
* @ORM\Column(name="added_date", type="datetime", nullable=true)
*/
private $addedDate;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set email
*
* @param string $email
* @return Users
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set password
*
* @param string $password
* @return SnabUsers
*/
public function setPassword($password)
{
$this->password = $password;
return $this;
}
/**
* Get password
*
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* Set type
*
* @param string $type
* @return SnabUsers
*/
public function setType($type)
{
$this->type = $type;
return $this;
}
/**
* Get type
*
* @return string
*/
public function getType()
{
return $this->type;
}
/**
* Set clientInn
*
* @param string $clientInn
* @return SnabUsers
*/
public function setClientInn($clientInn)
{
$this->clientInn = $clientInn;
return $this;
}
/**
* Get clientInn
*
* @return string
*/
public function getClientInn()
{
return $this->clientInn;
}
/**
* Set clientOgrn
*
* @param string $clientOgrn
* @return SnabUsers
*/
public function setClientOgrn($clientOgrn)
{
$this->clientOgrn = $clientOgrn;
return $this;
}
/**
* Get clientOgrn
*
* @return string
*/
public function getClientOgrn()
{
return $this->clientOgrn;
}
/**
* Set clientRs
*
* @param string $clientRs
* @return SnabUsers
*/
public function setClientRs($clientRs)
{
$this->clientRs = $clientRs;
return $this;
}
/**
* Get clientRs
*
* @return string
*/
public function getClientRs()
{
return $this->clientRs;
}
/**
* Set clientKs
*
* @param string $clientKs
* @return SnabUsers
*/
public function setClientKs($clientKs)
{
$this->clientKs = $clientKs;
return $this;
}
/**
* Get clientKs
*
* @return string
*/
public function getClientKs()
{
return $this->clientKs;
}
/**
* Set clientBik
*
* @param string $clientBik
* @return SnabUsers
*/
public function setClientBik($clientBik)
{
$this->clientBik = $clientBik;
return $this;
}
/**
* Get clientBik
*
* @return string
*/
public function getClientBik()
{
return $this->clientBik;
}
/**
* Set clientUaddress
*
* @param string $clientUaddress
* @return SnabUsers
*/
public function setClientUaddress($clientUaddress)
{
$this->clientUaddress = $clientUaddress;
return $this;
}
/**
* Get clientUaddress
*
* @return string
*/
public function getClientUaddress()
{
return $this->clientUaddress;
}
/**
* Set clientFaddress
*
* @param string $clientFaddress
* @return SnabUsers
*/
public function setClientFaddress($clientFaddress)
{
$this->clientFaddress = $clientFaddress;
return $this;
}
/**
* Get clientFaddress
*
* @return string
*/
public function getClientFaddress()
{
return $this->clientFaddress;
}
/**
* Set clientDaddress
*
* @param string $clientDaddress
* @return SnabUsers
*/
public function setClientDaddress($clientDaddress)
{
$this->clientDaddress = $clientDaddress;
return $this;
}
/**
* Get clientDaddress
*
* @return string
*/
public function getClientDaddress()
{
return $this->clientDaddress;
}
/**
* Set name
*
* @param string $name
* @return SnabUsers
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set notes
*
* @param string $notes
* @return SnabUsers
*/
public function setNotes($notes)
{
$this->notes = $notes;
return $this;
}
/**
* Get notes
*
* @return string
*/
public function getNotes()
{
return $this->notes;
}
/**
* Set addedDate
*
* @param \DateTime $addedDate
* @return SnabUsers
*/
public function setAddedDate($addedDate)
{
$this->addedDate = $addedDate;
return $this;
}
/**
* Get addedDate
*
* @return \DateTime
*/
public function getAddedDate()
{
return $this->addedDate;
}
}
Do you have any ideas why? eAccelerator is not set up. Doctrine v 2.2, PHP v 5.3.22, zend engine 2.3.0
You are using a
Doctrine\Common\Annotations\SimpleAnnotationReader
instead of aDoctrine\Common\Annotations\AnnotationReader
.The
SimpleAnnotationReader
works with default namespaces and reads annotations in format@Entity
, while theAnnotationReader
can use the imported classes and namespaces (viause
statement) and annotations such as@ORM\Entity
.You can read more about that on the documentation.
Here's a fixed version of your
test.php
In my case, I just forgot to add
@ORM\Entity
, like this:Following to Ocramius's answer (which saved me as well)
If you've got some custom namespacing on your Entities make sure that the annotations come after the namespace decleration, here is my Entity that worked:
Then in my controller:
Success!
In my case, I received this error because I opened the doc block with
/***
instead of/**
:You can use your configuration, just provide FALSE to use simple annotation reader, like that.