我正在使用Codeception对我的Symfony 2应用程序进行单元测试。
对于一个测试,我想以一对一的关系获取关联的实体,但我不能在我的生活中弄明白该怎么做,因为无论我怎么做,代码都会抱怨。
我的第一次尝试:
$log_id = $I->grabFromRepository('BM2SiteBundle:Realm', 'log', array('id' => $realm_id));
错误:
1)无法在RealmBasicsCest :: testRealmView中测试领域细节 (/卷/用户 数据/用户/汤姆/站点/ BM2 / SRC / BM2 / SiteBundle /测试/功能/ RealmBasicsCest.php) 对不起,我无法从存储库中获取 “BM2SiteBundle:境界”, “日志”,{ “id为”:1}: Doctrine \ ORM \ Query \ QueryException:[语义错误]第0行,第9列 'log FROM BM2 \ SiteBundle \ Entity \ Realm'附近:错误:无效 PathExpression。必须是StateFieldPathExpression。
第二次尝试:
$log_id = $I->grabFromRepository('BM2SiteBundle:EventLog', 'id', array('realm' => $realm_id));
错误:
1)无法在RealmBasicsCest :: testRealmView中测试领域细节 (/卷/用户 数据/用户/汤姆/站点/ BM2 / SRC / BM2 / SiteBundle /测试/功能/ RealmBasicsCest.php) 对不起,我无法从存储库中获取 “BM2SiteBundle:事件日志”, “ID”,{ “境界”:1}: Doctrine \ ORM \ Query \ QueryException:单值关联路径 DQL查询中不支持表达式反向。用一个 显而易见的连接。
一对一关系的定义:
one-to-one field="log" target-entity="EventLog" inversed-by="realm" fetch="EXTRA_LAZY"
为了进一步测试,我需要日志的id来构造一个URL。