我的数据库表“文档”:
id uuid timestamp name pages
86 37a4a52951 2019-10-18 18:13:08 something1 9
87 g4fbc106ab 2019-10-18 18:18:46 something2 23
91 77d2fde844 2019-10-21 15:58:37 Blue 16
92 9f05834314 2019-10-21 15:58:52 Black 16
93 9a7d8e32b2 2019-10-21 16:00:20 Orange 16
94 32b38338a1 2019-10-21 17:13:18 test 3
我的数据库表“数据”:
id uuid content field document_id
805 14cc8a5e48 Baloons 35 77d2fde844
806 6a0c9dfcc1 Bob 81 77d2fde844
807 c9061ea3e0 Fairytales 35 9f05834314
808 ed5cbb124a Alan 81 9f05834314
809 59f33d724c Dreams 35 9a7d8e32b2
810 b8c0fc2f6f Oliver 81 9a7d8e32b2
811 8fad6b9334 Banana 85 4fc75ebbdf
我尝试使用formbuilder和查询生成器创建一个选择框,其中包含所有通过页面16
和字段35
连接到文档的数据。
我尝试打印的输出是这样:
<select>
<option value="91">Baloons</option>
<option value="92">Fairytales</option>
<option value="93">Dreams</option>
</select>
这是我的方法:
$options['class'] = 'App\\Entity\\Data';
$options['attr'] = array('class' => 'form-control select2');
$options['query_builder'] = function (EntityRepository $er) use ($fieldId,$documentId) {
return $er->createQueryBuilder('data')
->leftJoin('data.documents', 'dd')
->andWhere('dd.pages = :id')
->andWhere('dd.uuid = data.document_id')
->andWhere('data.field = :field')
->setParameter(':id', 16)
->setParameter(':field', 35)
;
};
$options['choice_label'] = 'content';
错误消息:
[语义错误]第0行,'field =:fie'附近的col 127:错误:类 App \ Entity \ Data没有字段或名为字段的关联
答案 0 :(得分:1)
您的课程中有以下内容吗?
use Doctrine\ORM\Mapping as ORM;
class Data
{
/**
* @ORM\Column(name="field")
*/
private $field;
}
通常,教义足以解决该错误
是
// This is right
->setParameter('field', 22)
代替
// This is wrong
->setParameter(':field', ...)