我想使用Kohana 3拥有的默认ORM从我的数据库中获取一些行,但我没有得到我想要的东西: - )
In my Controller:
$comptes = ORM::factory('compte');
#$comptes->where('empresa_id', '=', 2)->find_all();
$comptes->find_all();
此查询在我的SQL中返回169411行,但此处不返回任何内容。当然我可以限制使用where,limit或者其他什么,但我正在尝试使用Kohana的基础知识。
This returns 1
$result = count($comptes);
In my model view:
<?php var_dump($comptes)?>
produces this:
object(Model_Compte)#16 (34) { ["_has_one":protected]=> array(0) { } ["_belongs_to":protected]=> array(0) { } ["_has_many":protected]=> array(0) { } ["_load_with":protected]=> array(0) { } ["_validation":protected]=> NULL ["_object":protected]=> array(14) { ["id"]=> NULL ["empresa_id"]=> NULL ["codi_compte"]=> NULL ["compte"]=> NULL ["tipus"]=> NULL ["saldo_deure"]=> NULL ["saldo_haver"]=> NULL ["saldo"]=> NULL ["nivell"]=> NULL ["ultim_moviment"]=> NULL ["client_id"]=> NULL...
所以这是模型,但我如何获取获取的数据?
另外在我看来:
foreach ($comptes as $row)
{
echo "<p>$row->codi_compte</p>";
}
?>
但我什么都没得到......
谢谢!
这不起作用:
$comptes = ORM::factory('compte');
$comptes->find_all();
但这很有效 $ comptes = ORM :: factory('compte') - &gt; find_all();
为什么?
这不起作用:
$comptes = ORM::factory('compte');
$comptes->where('empresa_id', '=', 2)->find_all();
但是,这又有效:
$comptes = ORM::factory('compte')->where('empresa_id', '=', 2)->find_all();
这些多行示例来自Kohana Web
答案 0 :(得分:2)
获取所有行的正确语法是:
$comptes = ORM::factory('compte')->find_all();
然后使用$comptes->loaded()
(不是count($comptes)
)检查是否已加载某些内容。
修改强>
要使用where
语句获取行,请编写:
$rows = ORM::factory('compte')->where('empresa_id', '=', 2)->find_all();
答案 1 :(得分:1)
$comptes = ORM::factory('compte');
$comptes->find_all();
这不起作用,因为你没有在变量中分配find_all()结果。 你应该写:
$comptes = ORM::factory('compte');
$rows = $comptes->find_all();
答案 2 :(得分:0)
如果你只是想把它分成多行以便于阅读,这是IMO最简单的方法......
示例:强>
$comptes = ORM::factory('compte')
->where('empresa_id', '=', 2)
->find_all();
答案 3 :(得分:0)
$comptes = ORM::factory('compte');
$comptes->find_all();
这不起作用,因为您使用分号。 分号表示结束语。
如果你删除这样的分号,它将正常工作:
$comptes = ORM::factory('compte')
->find_all();
或仅将其设为1行:
$comptes = ORM::factory('compte')->find_all();