如何获取每个作业下的条目数。让我们看一个 jobeet 教程,在这里我想显示每个工作的简历提交数量。
表
job : id title
submit : id job_id file
结果 :
title submits
job a 5
old job 20
我正在使用Doctrine。那么,我该怎么做呢?
如何获取每个作业下的条目数。让我们看一个 jobeet 教程,在这里我想显示每个工作的简历提交数量。
表
job : id title
submit : id job_id file
结果 :
title submits
job a 5
old job 20
我正在使用Doctrine。那么,我该怎么做呢?
像这样的东西:
$job = Doctrine_Core::getTable('Job')->find(1);
// it will query the database to fetch the relation
$submit = $job->getSubmit()->count();
但是,如果您想要更具体的内容,请向我们展示您的schema.yml.
如果您想避免对数据库进行新查询,可以使用 a 获取关系leftJoin
:
$job = Doctrine_Core::getTable('Job')
->leftJoin('Job.Submit')
->find(1);
// the relation is already fetched, so it won't perform a new query
$submit = $job->getSubmit()->count();
顺便提一下,这个->count()
方法要小心,如果你有很多提交,这个查询不会真正优化。最好的方法是执行手动查询计数:
$submit = Doctrine_Core::getTable('Submit')
->createQuery('s')
->select('COUNT(s.id) as total')
->where('s.job_id = ?', array($job->getId()))
// HYDRATE_NONE won't hydrate the return object
->execute(array(), Doctrine_Core::HYDRATE_NONE);
// I guess the value is here but test yourself
var_dump($submit[0]);