2016-08-31 4 views
1

У меня есть очень простой базы данных (MySql) с одной таблицей, которую я обращающегося с помощью Propel с этим кодом ...Propel возвращение же запись несколько раз

<?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(); 
?> 

Запрос, кажется, генерируется правильно ...

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 

Если я запускаю этот запрос через PhpMyAdmin я получаю ожидаемые результаты, однако, Propel, кажется, возвращается первая запись найденную по запросу 20 раз. Кто-нибудь знает, что может случиться здесь? Благодаря

редактировать: Запись цикл

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

Это похоже на ваш код поиска. Где вы получаете двадцать одинаковых записей? – tadman

+0

Когда я прохожу через $ видео, каждая запись идентична. Я добавил код к исходному вопросу. –

+0

Выполняется ли запрос вручную, чтобы получить правильные результаты? Что показывает ['var_dump'] (http://php.net/manual/en/function.var-dump.php)' $ videos'? – tadman

ответ

2

Схемы Я генерироваться из моих существующей базы данных с помощью команды инициализации PROPEL была создана до установки первичного ключа для этой таблицы. Это заставило Propel возвращать одну и ту же запись несколько раз в одном запросе. Это было решено путем регенерации схемы с использованием первичного ключа.

Смежные вопросы