gpt4 book ai didi

php - Symfony 访问自定义 propel 查询

转载 作者:行者123 更新时间:2023-11-29 14:33:36 25 4
gpt4 key购买 nike

我正在尝试使用 Symfony 1.4 和 propel ORM 来完成我认为是一项微不足道的任务。我有一个自定义静态类设置,我想用它通过搜索项目名称来返回行的 id。

这是我的功能:

static public function getItemIdByName ( $name )
{
$criteria = new Criteria();
$criteria-> clearSelectColumns();
$criteria -> add (ItemsPeer::ITEM_NAME, $name, Criteria::LIKE );
$criteria -> addSelectColumn(ItemsPeer::ITEM_ID);
$criteria -> setLimit (1);

$itemID = ItemsPeer::doSelect( $criteria );

return $itemID;
}

现在,当我返回 $itemID 时,我会得到该项目的名称。但是,我根本无法获取 item_id 列。我尝试返回 $itemID[1] 和其他几个列索引,但它说这些不存在。如果我 print_r($itemID),我会看到该表中每一列的数组,唯一有值的两个是 item_id 和 item_name。但是,我仍然找不到返回或访问该变量的方法。

有什么建议吗?

最佳答案

我认为错误发生在clearSelectColumns的位置,但我可能弄错了。尝试使用 doSelectStmt 而不是 doSelect:

$c = new Criteria();
$c->add(ItemsPeer::ITEM_NAME, $name, Criteria::LIKE);
$c->clearSelectColumns();
$c->addSelectColumn(ItemsPeer::ITEM_ID);
$c->setLimit(1);

$stmt = ItemsPeer::doSelectStmt($c);
return $stmt->fetch(PDO::FETCH_COLUMN); // $itemID

这应该可以解决您的问题。但是,如果您使用 sf 1.4 且 Propel >= 1.5,我建议您使用 Propel Query:

return ItemsQuery::create()
->filterByItemName($name . '%')
->select('ItemId')
->findOne();

关于php - Symfony 访问自定义 propel 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9549330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com