Question

Je veux aller chercher quelques lignes de mes bases de données en utilisant l'ORM par défaut Kohana 3 a, mais je ne reçois pas ce que je veux: -)

In my Controller:

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

Cette requête renvoie 169411 lignes dans mon SQL, mais retourne rien ici. Bien sûr, je peux limiter l'usage où, limite, ou autre chose, mais j'expérimente les bases avec 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...

C'est donc le modèle, mais comment je peux obtenir les données récupérées?

à mon avis aussi:

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

Mais je ne comprends rien ...

merci!

EDIT

Cela ne fonctionne pas:

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

mais cela fonctionne $ = ORM :: comptes usine ( 'compte') -> find_all ();

Pourquoi?

Et cela ne fonctionne pas:

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

Mais encore une fois, cela fonctionne:

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

Cet exemple multi-lignes sont de Kohana Web

Était-ce utile?

La solution

La syntaxe correcte pour obtenir toutes les lignes sont:

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

Ensuite, pour vérifier si utiliser quelque chose a été chargé $comptes->loaded() (non count($comptes)).

Modifier

Pour obtenir des lignes en utilisant une instruction where, vous pouvez écrire:

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

Autres conseils

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

Ce travail ne marche pas parce que vous avez fait pas affecté find_all () dans une variable. Vous devez écrire:

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

Si vous voulez juste de le décomposer en plusieurs lignes pour des raisons de lisibilité, c'est la méthode la plus simple de l'OMI ...

Exemple:

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

Cela ne fonctionne pas parce que vous utilisez point-virgule. des moyens de virgule fin de l'instruction.

Il fonctionnera bien si vous supprimez des points-virgules comme ceci:

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

Ou faire comme 1 ligne seulement:

$comptes = ORM::factory('compte')->find_all();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top