Основная Кохана Орм Находит записи
-
27-10-2019 - |
Вопрос
Я хочу принести несколько строк из моих баз данных, используя ORM по умолчанию, который есть у Кохана 3, но я не получаю то, что хочу :-)
In my Controller:
$comptes = ORM::factory('compte');
#$comptes->where('empresa_id', '=', 2)->find_all();
$comptes->find_all();
Этот запрос возвращает строки 169411 в моем SQL, но здесь ничего не возвращает. Конечно, я могу ограничить, где, предел или что -то еще, но я экспериментирую основы с Коханой.
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')-> find_all ();
Почему?
И это не работает:
$comptes = ORM::factory('compte');
$comptes->where('empresa_id', '=', 2)->find_all();
Но опять же, это работает:
$comptes = ORM::factory('compte')->where('empresa_id', '=', 2)->find_all();
Эти многослойные примеры из Кохана Веб
Решение
Правильный синтаксис, чтобы получить все ряды, будет:
$comptes = ORM::factory('compte')->find_all();
Затем проверить, использовалось ли что -то, что $comptes->loaded()
(нет count($comptes)
).
Редактировать:
Чтобы получить ряды, используя where
утверждение, вы бы написали:
$rows = ORM::factory('compte')->where('empresa_id', '=', 2)->find_all();
Другие советы
$comptes = ORM::factory('compte');
$comptes->find_all();
Это не работает, потому что вы не присваивали insize_all () привести к переменным. Вы должны написать:
$comptes = ORM::factory('compte');
$rows = $comptes->find_all();
Если вы просто хотите разбить его на несколько строк ради читаемости, это самый простой метод IMO ...
Пример:
$comptes = ORM::factory('compte')
->where('empresa_id', '=', 2)
->find_all();
$comptes = ORM::factory('compte');
$comptes->find_all();
Это не работает, потому что вы используете Semicolon. полуколон означает конец заявления.
Он будет работать нормально, если вы стерте Semicolon, как это:
$comptes = ORM::factory('compte')
->find_all();
Или сделать это только 1 строкой:
$comptes = ORM::factory('compte')->find_all();