我开始使用 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() 运行上述代码时,它会返回我想要的结果。
你能帮我吗?如果需要更多信息,请告诉我。谢谢你。