Frage

Ich möchte einige Zeilen aus meinen Datenbanken mit dem Standard-Orm, den Kohana 3 hat, abrufen, aber ich bekomme nicht das, was ich will :-)

In my Controller:

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

Diese Abfrage gibt 169411 Zeilen in meinem SQL zurück, aber hier gibt es nichts zurück. Natürlich kann ich mit wo, begrenzt oder was auch immer einschränken, aber ich experimentiere die Grundlagen mit 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...

Das ist also das Modell, aber wie kann ich die abgerufenen Daten erhalten?

Auch meiner Ansicht nach:

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

Aber ich bekomme nichts ...

Danke!

BEARBEITEN

Das funktioniert nicht:

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

Dies funktioniert jedoch $ comptes = orm :: factory ('compte')-> find_all ();

Wieso den?

Und das funktioniert nicht:

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

Aber das funktioniert wieder:

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

Diese Multi-Lines-Beispiele stammen aus Kohana Web

War es hilfreich?

Lösung

Die richtige Syntax, um alle Zeilen zu erhalten, wäre:

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

Dann prüfen, ob etwas verwendet wurde $comptes->loaded() (nicht count($comptes)).

Bearbeiten:

Zeilen mit a where Aussage, Sie würden schreiben:

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

Andere Tipps

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

Dies funktioniert nicht, da Sie Find_all () nicht zugewiesen haben, was zu einer Variablen führt. Sie sollten schreiben:

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

Wenn Sie es nur für die Lesbarkeit in mehrere Zeilen aufbrechen möchten, ist dies die einfachste Methode imo ...

Beispiel:

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

Dies funktioniert nicht, weil Sie Semikolon verwenden. Semikolon bedeutet Ende der Erklärung.

Es wird gut funktionieren, wenn Sie Semikolon wie folgt löschen:

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

Oder machen Sie es nur als 1 Zeile:

$comptes = ORM::factory('compte')->find_all();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top