2016-12-12 3 views
0

Je développe une application PHP avec Propel ORM en tant que modèle. Il est installé via Composer et toutes les classes sont chargées automatiquement. Je peux créer des requêtes, accéder à la base de données et récupérer des données pour remplir ma page. Agréable. Mais j'ai des problèmes avec certaines méthodes comme isLast(). Selon documentation, vous pouvez l'utiliser comme suit:Méthodes Propel and Collection

$books = BookQuery::create()->find(); 
foreach ($books as $book){ 
    if($books->isLast()){ 
    // Do something 
    } 
} 

Je ne peux pas reproduire même cet exemple simple. J'ai simplifié mon code pour voir si cela fonctionne (avec mes propres tables et colonnes noms):

$provincias=ProvinciasQuery::create()->find(); 
foreach($provincias as $v){ 
    echo $v->getProvinciasNombre(); // This works! 
    if($provincias->isLast()){ // This doesn't :(
    // Do something 
    } 
} 

Je reçois toujours la même erreur:

Fatal error: Uncaught exception 'Propel\Runtime\Exception\BadMethodCallException' with message 'Call to undefined method: isLast' in /path/to/my/app/vendor/propel/propel/src/Propel/Runtime/Collection/Collection.php on line 558

même chose se produit avec d'autres méthodes telles que isEven() , isOdd() ou isFirst(). La méthode isEmpty() semble fonctionner correctement.

Toute aide serait appréciée.

Répondre

0

trouvé une solution here:

$books = BookQuery::create()->find(); 
$booksLoop = $books->getIterator(); 
foreach ($booksLoop as $book) { 
    if ($booksLoop->isFirst()) echo "First"; 
} 

Documentation officielle pour Propel 2 est pas à jour. J'ai déjà déposé un problème à github: https://github.com/propelorm/Propel2/issues/1314