Mysql 如何访问单向多通关联的目标实体的方法
我被困在这里执行查询:Mysql 如何访问单向多通关联的目标实体的方法,mysql,database,symfony,symfony4,Mysql,Database,Symfony,Symfony4,我被困在这里执行查询: public function findByFile_Ref_Id($query) { $query = $query['ids']; $q = $this->createQueryBuilder('h'); $result = $q ->join('h.file_ref_id', 'k') ->add('where', $q->expr()->in('k.product_code',
public function findByFile_Ref_Id($query)
{
$query = $query['ids'];
$q = $this->createQueryBuilder('h');
$result = $q
->join('h.file_ref_id', 'k')
->add('where', $q->expr()->in('k.product_code', $query))
->getQuery()
->getResult();
return $result;
}
我得到了这样的结果:
阵列:5[▼
0=>HikashopFile{#417▼
-档案编号:2207
-文件路径:“1TAHBIO.jpg”
-文件参考id:KstoreHikashopProduct{#363▼
+已初始化:真
-产品编号:6
-产品名称:“塔希纳生物”
-产品描述:“La Tahinaèuna crema di sesamo Biologia.Rafforza il sistema immunitario grazie alla presenza di sali e
维生素,不含钙质成分,▶"
-产品数量:3
-产品代码:“1TAHBIO”…2}
我想访问该目标实体的方法来执行一些任务
但当我尝试时,我得到:
App\Entity\HikashopFile::getFileRefId()的返回值必须为
类型int或null,返回对象
或
试图调用类的名为“getProductName”的未定义方法
“App\Entity\HikashopFile”
我的代码显然有问题
非常感谢您的帮助!请检查您的“HikashopFile”实体中是否有名为“getProductName”的方法,如果没有请创建它如果是请删除它并生成getter和setter您的方法getFileRefId()肯定在等待在键入级别返回int或null,如:
public function getFileRefId(): ?int
{
return $this->fileRefId;
}
尝试删除键入,也许它会工作
我认为您的实体之间的关系存在问题,因为您希望获取其他表的Id,但对于条令,它将为您提供与标识符对应的对象
检查条令文件:条令orm(此处使用)正在使用对象,而我目前看到的情况表明您正在使用id。您的文件\u ref\u id
属性也不使用setter,因此您的属性包含一个HikashopProduct
对象而不是id。但是,getFileRefId
函数应该返回int或null(根据错误消息,这可能源于函数签名)。可能有很多代码气味。。。