Typo3 更正包含指定类别的作业列表输出的问题
我使用的是打字3 8.7 我想在我的扩展中输出当前工作邀请的列表,包括相应的类别 这是我的代码:Typo3 更正包含指定类别的作业列表输出的问题,typo3,extbase,Typo3,Extbase,我使用的是打字3 8.7 我想在我的扩展中输出当前工作邀请的列表,包括相应的类别 这是我的代码: /** * Return all active jobs and join category title to each job * * @return QueryResult * @return array */ public function findAll() { /** @var QueryBuilder $queryBuilder */ $queryBuilder = G
/**
* Return all active jobs and join category title to each job
*
* @return QueryResult
* @return array
*/
public function findAll()
{
/** @var QueryBuilder $queryBuilder */
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_ats_domain_model_job');
$statement = $queryBuilder
->select('tx_ats_domain_model_job.uid', 'tx_ats_domain_model_job.title', 'tx_ats_domain_model_job.job_number')
->from('tx_ats_domain_model_job')
->addSelect('tx_ats_domain_model_category.title')
->from('tx_ats_domain_model_category')
->join(
'tx_ats_domain_model_job',
'tx_ats_domain_model_category',
'categories',
$queryBuilder->expr()->eq('categories.uid', $queryBuilder->quoteIdentifier('tx_ats_domain_model_job.cat'))
)->execute();
$results = $statement->fetch();
return $results;
}
当我执行以下操作时:
->select('tx_ats_domain_model_job.uid')
->from('tx_ats_domain_model_job')
->select('tx_ats_domain_model_job.uid', 'tx_ats_domain_model_job.title', 'tx_ats_domain_model_job.job_number')
->from('tx_ats_domain_model_job')
->select('tx_ats_domain_model_job.uid', 'tx_ats_domain_model_job.title', 'tx_ats_domain_model_job.job_number')
->from('tx_ats_domain_model_job')
->addSelect('tx_ats_domain_model_category.title')
->from('tx_ats_domain_model_category')
列出了所有实际作业,但没有内容
当我执行以下操作时:
->select('tx_ats_domain_model_job.uid')
->from('tx_ats_domain_model_job')
->select('tx_ats_domain_model_job.uid', 'tx_ats_domain_model_job.title', 'tx_ats_domain_model_job.job_number')
->from('tx_ats_domain_model_job')
->select('tx_ats_domain_model_job.uid', 'tx_ats_domain_model_job.title', 'tx_ats_domain_model_job.job_number')
->from('tx_ats_domain_model_job')
->addSelect('tx_ats_domain_model_category.title')
->from('tx_ats_domain_model_category')
所有实际作业都列在作业标题(无作业编号)中,但每个作业三次,每个select语句一次
当我执行以下操作时:
->select('tx_ats_domain_model_job.uid')
->from('tx_ats_domain_model_job')
->select('tx_ats_domain_model_job.uid', 'tx_ats_domain_model_job.title', 'tx_ats_domain_model_job.job_number')
->from('tx_ats_domain_model_job')
->select('tx_ats_domain_model_job.uid', 'tx_ats_domain_model_job.title', 'tx_ats_domain_model_job.job_number')
->from('tx_ats_domain_model_job')
->addSelect('tx_ats_domain_model_category.title')
->from('tx_ats_domain_model_category')
情况更糟。将列出分配给当前作业的所有类别。但同样的:按六个类别,每个类别都列出六次
有人能暗示我的错误在哪里吗?非常感谢。如果在tx\u ats\u domain\u model\u job.cat中仅代表来自tx\u ats\u domain\u model\u类别的uid,则必须
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_ats_domain_model_job');
$statement = $queryBuilder
->select('tx_ats_domain_model_job.uid', 'tx_ats_domain_model_job.title', 'tx_ats_domain_model_job.job_number', 'tx_ats_domain_model_category.title')
->from('tx_ats_domain_model_job')
->leftJoin(
'tx_ats_domain_model_job',
'tx_ats_domain_model_category',
'categories',
$queryBuilder->expr()->eq('categories.uid', $queryBuilder->quoteIdentifier('tx_ats_domain_model_job.cat'))
)->execute();
$results = $statement->fetch();
谢谢你的回答。您的假设是正确的,在tx_ats_domain_model_job中。cat是tx_ats_domain_model_类别的uid。您的解决方案导致我在“字段列表”中找到错误消息未知列“tx_ats_domain_model_category.catname”。我只在域模型类别中配置了tx_ats_domain_model_category.title。我一定要计划些什么吗?来自SwitzerlandHm的问候,您在ext_tables.sql或TCA中的Configuration/TCA/tx_ats_domain_model_category.php中是否定义了数据库表中不存在的字段catname?因为querybuilder不访问此字段?我的查询只访问表tx_ats_domain_model_category中的字段uid和title…嗯…,对不起,我搞错了。我将数据库中的字段从“title”重命名为“catname”——不要问为什么。在TCA中,“catname”定义为字段类型输入,在域模型中定义为*@var string*/受相应的get和set类型保护