【问题标题】:How do I write a search query using Kohana PHP?如何使用 Kohana PHP 编写搜索查询?
【发布时间】:2009-05-09 16:44:11
【问题描述】:

我有一个有 4 列的表 (product_shoppingcart):

id, product_id, shoppingcart_id, product_quantity.

我正在使用 Kohana 的 ORM。

我想编写一个搜索查询,它返回 shoppingcart_id 列包含 1 的所有行(例如)。

我已经试过了:

$arr = ORM::factory('product_shoppingcart')->where('shoppingcart_id',$shoppingcartID)->find_all();

但这不起作用。

谁能帮帮我?

【问题讨论】:

  • 这有什么不好的?我只是按照您的要求进行了设置,并且能够使其正常工作。我怀疑您的模型可能使用“has_one”或其他属性。你能把你的模型也发一下吗?
  • 另外,您的控制器上是否安装了分析器?这样您就可以看到正在运行的 SQL。您可以尝试在 phpMyAdmin 中运行查询以查看原始结果。
  • Ambirex,它可以工作,但它只返回一行,而不是很多。我想得到大概 10 行其 shoppingcart_id 等于 $shoppingcartID 的行。

标签: php kohana


【解决方案1】:

您的示例代码应该可以工作,但问题可能是您没有对结果集进行迭代?

$results = ORM::factory('product_shoppingcart')
           ->where('shoppingcart_id', $shoppingcartID)
           ->find_all();
foreach ($results as $product_shoppingcart) {
  print Kohana::debug($product_shoppingcart->as_array());
}

如果您有多个具有该 ID 的行,这应该会在 $results 中为您提供一个结果迭代器,然后您可以使用 foreach 循环遍历它。我有很多类似工作代码的例子,如果你仍然不能让它工作的话。

【讨论】:

    【解决方案2】:

    这是它的样子:

    $arr = ORM::factory('product_shoppingcart')->where(
                        'shoppingcart_id',"=",$shoppingcartID)->find_all();
    

    【讨论】:

      【解决方案3】:

      你的桌子应该是“product_shoppingcarts”还是我错过了什么?

      【讨论】:

      • 你可以设置 $table_name = 'product_shoppingcart';如果您的表被命名为其他名称,则在模型中。
      猜你喜欢
      • 2016-05-09
      • 2018-12-02
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多