0

如何获取每个作业下的条目数。让我们看一个 jobeet 教程,在这里我想显示每个工作的简历提交数量。

job : id  title      
submit : id job_id file

结果 :

 title           submits    
 job a             5
 old job           20

我正在使用Doctrine。那么,我该怎么做呢?

4

1 回答 1

1

像这样的东西:

$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]);
于 2012-11-26T08:10:53.027 回答