2016-08-31 1 views
1

j'ai une base de données très simple (MySql) avec une table que j'accède en utilisant Propel avec ce code ...Propel retour même disque plusieurs fois

<?php 
$autoloader = require '/vendor/autoload.php'; 
$autoloader->add('', __DIR__ . '/generated-classes/'); 

use Propel\Runtime\Propel; 
use Propel\Runtime\Connection\ConnectionManagerSingle; 

require './generated-conf/config.php'; 
require './includes/pagebuilder.php'; 

Propel::getConnection("default")->useDebug(true); 

$videos = VideosQuery::create() 
    ->orderByAddeddate() 
    ->paginate($page = 1, $maxPerPage = 20); 

echo GetMainPage($videos); 
echo Propel::getConnection()->getLastExecutedQuery(); 
?> 

La requête semble générer correctement ...

SELECT videos.id, videos.AddedDate, videos.Rating, videos.Views, videos.Title, videos.Description, videos.ImageUrl, videos.EmbedUrl FROM videos ORDER BY videos.AddedDate ASC LIMIT 20 

Si je lance cette requête par phpMyAdmin je reçois les cependant, les résultats attendus, Propel semble revenir le premier enregistrement trouvé par la requête 20 fois. Quelqu'un sait ce qui pourrait se passer ici? Merci

modifier: enregistrement en boucle

function GetMainContent($videos) { 
    $mc = '<main> 
      <div id="video-box-wrapper">'; 

    foreach($videos as $video) { 
     $mc .= '<div class="video-box"> 
        <a href="#"> 
         <img src="' . $video->getImageUrl() . '" /> 
         <span>' . $video->getTitle() . '</span> 
         <br /> 
         <p>' . $video->getViews() . ' views</p> 
         <p>Rating: ' . $video->getRating() . '/10</p> 
        </a> 
       </div>'; 
    } 
    $mc .= '</main>'; 

    return $mc; 
} 
+0

Cela ressemble à votre code de récupération. Où est la partie où vous obtenez vingt disques identiques? – tadman

+0

Lorsque je boucle des vidéos $ chaque enregistrement est identique. J'ai ajouté du code à la question originale. –

+0

La requête exécutée manuellement produit-elle les résultats corrects? Que montre un ['var_dump'] (http://php.net/manual/fr/function.var-dump.php) de' $ videos'? – tadman

Répondre

2

Le schéma que j'avais généré à partir de ma base de données existante en utilisant la commande d'initialisation de Propel a été créé avant de fixer une clé primaire pour cette table. Cela a provoqué Propel à retourner le même enregistrement plusieurs fois dans une requête. Cela a été résolu en régénérant le schéma avec la clé primaire en place.