简单条令查询->;一个特定的行和列


Simple doctrine query -> one specific row and column

我确实有一个名为"tax"的表,它有两列"id | tax_value"。我可以很好地用foreach列出表格。

现在我的问题是,当我只想拥有php代码中的一个特定的行和列?我不希望它出现在查询中!!!

例如:

column 2 (tax_value)
row 1.

查询给了我一个数组,对吧?

在TaxTable.class.php中:

public function getOneById($id)
{
    $q = Doctrine_Query::create()->select("t.tax_value")
                                 ->from("tax t")
                                 ->where("t.id = ?", $id)
                                 ->fetchOne();
    return $q;
}

行动中:

public function executeTaxView(sfWebRequest $request)
{
    $this->tax = TaxTable::getInstance()->getOneById($request->getParameter("id"));
    $this->forward404Unless($this->tax);
}

在taxViewSuccess.php中:

  Tax Value: <b><?php echo $tax->getTaxValue();?></b>

在select语句中获取单行和单列时,可以使用Doctrine::HYDRATE_SINGLE_SCALAR

$total = Doctrine_Query::create()->from('Products p')
        ->select('SUM(p.amount) as total')
        ->where('p.category_id = ?', $categoryId)
        ->fetchOne(array(), Doctrine::HYDRATE_SINGLE_SCALAR);
// $total is now a single value, eg. 12

示例使用一个带有类别的假想产品表,并选择某个类别的产品数量。

如何在symfony中使用此查询取决于您的需求:在表类、模型类、操作中。。

如果使用Doctrine_Query,则可以使用fetchOne获取一行。此外,我使用Doctrine_Query已经有一段时间了,但我几乎可以肯定,使用Doctrine _Query,您可以将字段选择列表设置为一列。