2011-05-31 30 views
1

我有一个表叫"tax"两列"id | tax_value"。我可以用foreach很好地列出表格。简单主义查询 - >一个具体的行和列

现在我的问题是,当我只想要 在PHP代码中有一个特定的行和列时,代码如何?我不希望它在查询中!

例如:

column 2 (tax_value) 

row 1. 

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

+0

Doctrine 1 or 2? – David 2011-05-31 17:16:36

+0

学说1.2。抱歉! – craphunter 2011-05-31 17:34:09

回答

4

在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); 
} 
在taxViewSucess.php

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

如果您使用Doctrine_Query,那么您可以使用fetchOne抓取一行。而且它是一个有点,因为我已经使用原则1,但我与Doctrine_Query您可以在现场选择列表设置为一列呼之欲出。

4

与取单行时,您可以使用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中使用此查询取决于您的需求:在表格类,模型类,动作中..