typo3 - 更正输出包含分配类别的作业列表的问题
问题描述
我正在使用 TYPO3 8.7 我想输出当前工作机会的列表,包括我扩展中的相应类别。
这是我的代码:
/**
* 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')
它的情况更糟。列出了分配给当前作业的所有类别。但同样如此:六个类别都被列出六次。
有人可以提示我的错误在哪里吗?提前谢谢了。
解决方案
如果在 tx_ats_domain_model_job.cat 中仅代表来自 tx_ats_domain_model_category 的 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();
推荐阅读
- powerbi - 基于前一周的 DAX
- css - 如何更改折叠导航栏中项目的对齐方式?
- amazon-web-services - Amazon S3 存储桶策略更改使用完整管理员 aws 帐户拒绝访问
- python - 二维矩阵python增量
- ios - 如何知道 p12 文件是否有私钥?
- python - 熊猫 CSV 导入失败?
- html - 在 Angular 10 中滑动以删除
- php - 如何在 PHP 中配置基于会话的超时选项?
- google-cloud-platform - 将 10gb 文件上传到 GCS
- c# - 当用户在 FTP 发布期间访问 ASP.NET MVC 网站时会发生什么?