Простой доктринальный запрос -> одна конкретная строка и столбец - PullRequest
1 голос
/ 31 мая 2011

У меня есть таблица с именем "tax" с двумя столбцами "id | tax_value".Я могу перечислить таблицу с foreach очень хорошо.

Теперь мой вопрос, как выглядит код, когда я просто хочу иметь одну конкретную строку и столбец в коде php?Я не хочу этого в запросе !!!

например:

column 2 (tax_value)

row 1.

Запрос дает мне массив, верно?

Ответы [ 3 ]

4 голосов
/ 01 июня 2011

В 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>
4 голосов
/ 11 апреля 2012

Вы можете использовать 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 зависит от ваших потребностей: в классе таблицы, классе модели, действии, ..

0 голосов
/ 01 июня 2011

Если вы используете Doctrine_Query , то вы можете использовать fetchOne, чтобы получить одну строку.Кроме того, с тех пор, как я использовал Doctrine 1, прошло немного времени, но я почти уверен, что с Doctrine_Query вы можете установить список выбора полей в один столбец.

...