TYPO3存储库查询返回uid和pid,但不返回其他字段 [英] TYPO3 Repository query returns uid and pid but no other fields

查看:16
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆