著者と人の2つのエンティティがあります。
著者エンティティには、実際には人物オブジェクトである人物フィールドがあります。
/**
* @ORM\ManyToOne(targetEntity="Person", inversedBy="submission_authors")
* @ORM\JoinColumn(name="person_id", referencedColumnName="id")
*/
protected $person;
さて、リポジトリAuthorRepositoryで、何人かの著者をファーストネームで検索したいと思います。これを行うには、対応する作成者の人物オブジェクトにアクセスし、人物の名を確認する必要があります。
私が試した:
public function searchAuthors($q)
{
$authQB = $this->createQueryBuilder( 'a' )
->select('a')
->where("a.person.firstname LIKE '%".$q."%'");
return $authQB->getQuery()->getResult();
}
しかし、問題は私がエラーを受け取っていることです:
[Syntax Error] line 0, col 78: Error: Expected Doctrine\ORM\Query\Lexer::T_LIKE, got '.'
それを解決する方法を教えてください。