我开始使用Doctrine并立即遇到麻烦。我有一个实体定义如下:
namespace AdminModule;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="admin_user")
*/
class User extends \Nette\Object
{
/**
* @ORM\Id
* @ORM\Column(type="string", name="guid")
* @var string
*/
protected $id;
/**
* @ORM\Column(type="string")
* @var string
*/
protected $username;
/**
* @ORM\Column(type="string")
* @var string
*/
protected $password;
/**
* @ORM\Column(type="string")
* @var string
*/
protected $email;
/**
* @ORM\Column(type="datetime")
* @var datetime
*/
protected $registered;
/**
* @ORM\Column(type="datetime")
* @var datetime
*/
protected $last_login;
}
如果我打电话
$u = $this->em->getRepository('AdminModule\User')->createQueryBuilder()
->select('u.username, u.id')
->from('AdminModule\User', 'u');
我得到RuntimeException,指出缺少标识符属性“id”。但是,当我使用getQuery()和execute()运行上面的代码时,它会返回我想要的结果。
你能救我吗?如果需要更多信息,请告诉我。谢谢。