TYPO3存储库查询返回uid和pid,但不返回其他字段 [英] TYPO3 Repository query returns uid and pid but no other fields
本文介绍了TYPO3存储库查询返回uid和pid,但不返回其他字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在一个输入错误3的任务中对一个非常简单的表进行查询。但是,只返回"uid"和"pid"两个字段,其他字段为NULL
。
我的实体:
<?php
namespace NameSampleExtensionDomainModel;
use TYPO3CMSExtbaseDomainObjectAbstractEntity;
class MailAgent extends AbstractEntity
{
/**
* @var integer
*/
protected $uid;
/**
* @var string
*/
protected $customeremail;
/**
* @var string
*/
protected $searchparameters;
/**
* @var string
*/
protected $resultlist;
public function getUid()
{
return $this->uid;
}
public function setCustomerEmail($customeremail)
{
$this->customeremail = $customeremail;
}
public function getCustomerEmail()
{
return $this->customeremail;
}
public function setSearchParameters($searchparameters)
{
$this->searchparameters = $searchparameters;
}
public function getSearchParameters()
{
return $this->searchparameters;
}
public function setResultList($resultlist)
{
$this->resultlist = $resultlist;
}
public function getResultList()
{
return $this->resultlist;
}
}
?>
存储库:
<?php
namespace NameSampleExtensionDomainRepository;
use TYPO3CMSExtbasePersistenceRepository;
class MailAgentRepository extends Repository
{
public function findByUids($uids)
{
$query = $this->createQuery();
foreach ($uids as $uid) {
$constraints[] = $query->equals('uid', $uid);
}
return $query->matching(
$query->logicalOr(
$constraints
)
)->execute();
}
}
?>
和任务内部的查询:
<?php
namespace NameSampleExtensionTask;
use TYPO3CMSSchedulerTaskAbstractTask;
use TYPO3CMSExtbaseObjectObjectManager;
use TYPO3CMSExtbasePersistenceGenericPersistenceManager;
use NameSampleExtensionDomainModelMailAgent;
use NameSampleExtensionDomainRepositoryMailAgentRepository;
class MailAgentCheckup extends AbstractTask
{
public function execute() {
$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$this->MailAgentRepository = $objectManager->get(MailAgentRepository::class);
$query = $this->MailAgentRepository->createQuery();
$allCustomers = $this->MailAgentRepository->findAll();
foreach ($allCustomers as $customer) {
var_dump($customer);
}
return true;
}
}
?>
我不知道为什么不返回其他字段,但是返回了uid和pid。我猜我需要在其他地方声明映射。
编辑:这是我的TCA的内容,这可能是错误的或不够的,但由于我正在处理现有的扩展,所以我是从可以工作的表的TCA复制的。
tx_sampleextension_domain_model_mailagent.php
return [
'columns' => [
'uid' => [],
'customer_email' => [],
'search_parameters' => [],
'result_list' => [],
],
'types' => [],
];
这来自查询ETC工作的另一个表
return [
'columns' => [
'immovable' => [],
'type' => [],
'title' => [],
'path' => [],
'mark_to_delete' => [],
],
];
推荐答案
我缺少该表的tca文件。在添加它并声明其中的所有列之后,将填充extbase域对象变量。
这篇关于TYPO3存储库查询返回uid和pid,但不返回其他字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文