Pregunta

Quiero obtener algunas filas de mis bases de datos utilizando el ORM predeterminado que tiene Kohana 3, pero no estoy obteniendo lo que quiero :-)

In my Controller:

$comptes = ORM::factory('compte');
#$comptes->where('empresa_id', '=', 2)->find_all();
$comptes->find_all();

Esta consulta devuelve 169411 filas en mi SQL, pero aquí no devuelve nada. Por supuesto, puedo limitar el uso de dónde, límite o lo que sea, pero estoy experimentando lo básico con 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...

Entonces, este es el modelo, pero ¿cómo puedo obtener los datos obtenidos?

También en mi opinión:

foreach ($comptes as $row)
{
 echo "<p>$row->codi_compte</p>";
}
?>

Pero no tengo nada ...

¡Gracias!

EDITAR

Esto no funciona:

$comptes = ORM::factory('compte');
$comptes->find_all();

Pero esto funciona $ comptes = orm :: factory ('compte')-> find_all ();

¿Por qué?

Y esto no funciona:

$comptes = ORM::factory('compte');
$comptes->where('empresa_id', '=', 2)->find_all();

Pero de nuevo, esto funciona:

$comptes = ORM::factory('compte')->where('empresa_id', '=', 2)->find_all();

Estos ejemplos de múltiples líneas son de Web Kohana

¿Fue útil?

Solución

La sintaxis correcta para obtener todas las filas sería:

$comptes = ORM::factory('compte')->find_all();

Luego, para verificar si se ha cargado algo, use $comptes->loaded() (no count($comptes)).

Editar:

Para obtener filas usando una where declaración, escribirías:

$rows = ORM::factory('compte')->where('empresa_id', '=', 2)->find_all();

Otros consejos

$comptes = ORM::factory('compte');
$comptes->find_all();

Esto no funciona porque no asignó el resultado Find_All () en variables. Deberías escribir :

$comptes = ORM::factory('compte');
$rows = $comptes->find_all();

Si solo desea dividirlo en múltiples líneas por el bien de la legibilidad, este es el método más simple en mi opinión ...

Ejemplo:

$comptes = ORM::factory('compte')
    ->where('empresa_id', '=', 2)
    ->find_all();
$comptes = ORM::factory('compte');
$comptes->find_all();

Esto no funciona porque usas Semicolon. Semicolon significa final de declaración.

Funcionará bien si borra una semicolon así:

$comptes = ORM::factory('compte')
->find_all();

O hazlo como 1 línea solamente:

$comptes = ORM::factory('compte')->find_all();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top