Şu anda arka uç MySQL ile Doktrini 1.2.2 kullanıyorum. Ben kaydını veya tembel yük hidrasyon modlarını kullanarak birden fazla öğe için bir sonuç kümesi almak çalıştığınızda, yalnızca bir tek öğe gösterir. Ben dizi hidrasyon modunu kullanmak Ancak, ben tüm sonuçları görmek. Tutarlı, sonuç kümesinde sadece son öğe alınır.
Ben API yanlış mı? Modeli (o autogenerated oldu) yanlış tanımlanır. Bu basit olması gerekmiyor mu?
Sağ şimdi, ben benim tamircimsin kadar ateş ve ben Doktrini kaynak kodu ile adım olacaktır.
// Model used:
<?php
/**
* BaseEntryVote
*
* This class has been auto-generated by the Doctrine ORM Framework
*
* @property integer $contest_id
* @property integer $vote_id
* @property integer $entry_id
* @property integer $subcategory_id
* @property string $company
* @property string $website
* @property string $email
* @property string $comments
* @property integer $votes
*
* @package ##PACKAGE##
* @subpackage ##SUBPACKAGE##
* @author ##NAME## <##EMAIL##>
* @version SVN: $Id: $
*/
abstract class BaseEntryVote extends Doctrine_Record
{
public function setTableDefinition()
{
$this->setTableName('entry_vote');
$this->hasColumn('contest_id', 'integer', 4, array(
'type' => 'integer',
'length' => 4,
'fixed' => false,
'unsigned' => false,
'primary' => true,
'notnull' => false,
'autoincrement' => false,
));
$this->hasColumn('vote_id', 'integer', 4, array(
'type' => 'integer',
'length' => 4,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'notnull' => true,
'autoincrement' => false,
));
$this->hasColumn('entry_id', 'integer', 4, array(
'type' => 'integer',
'length' => 4,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'default' => '0',
'notnull' => false,
'autoincrement' => false,
));
$this->hasColumn('subcategory_id', 'integer', 4, array(
'type' => 'integer',
'length' => 4,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'default' => '0',
'notnull' => false,
'autoincrement' => false,
));
$this->hasColumn('company', 'string', 100, array(
'type' => 'string',
'length' => 100,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'notnull' => false,
'autoincrement' => false,
));
$this->hasColumn('website', 'string', 75, array(
'type' => 'string',
'length' => 75,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'notnull' => false,
'autoincrement' => false,
));
$this->hasColumn('email', 'string', 75, array(
'type' => 'string',
'length' => 75,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'notnull' => false,
'autoincrement' => false,
));
$this->hasColumn('comments', 'string', 255, array(
'type' => 'string',
'length' => 255,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'notnull' => false,
'autoincrement' => false,
));
$this->hasColumn('votes', 'integer', 4, array(
'type' => 'integer',
'length' => 4,
'fixed' => false,
'unsigned' => false,
'primary' => false,
'notnull' => false,
'autoincrement' => false,
));
}
public function setUp()
{
parent::setUp();
}
}
// Below is the code used to access the doctrine api
/*
Table entry_vote
================
contest_id, vote_id, entry_id, subcategory_id, company, website, email, comments, votes
----------------
contest_id INT
vote_id INT
entry_id INT
subcategory_id INT
company VARCHAR
website VARCHAR
email VARCHAR
comments VARCHAR
votes INT
Data in db:
'0', '1', '1', '0', 'Foo Bank', 'http://localhost/foo', 'bob@foo.com', NULL, '2'
'0', '0', '0', '0', 'TPS Corp', 'http://localhost/tps', 'bob@tps.com', NULL, '1'
*/
$result = Doctrine_Core::getTable('EntryVote')->findAll();
foreach ($result as $entry) {
print $entry->company;
}
/* Here is the query that Doctrine is generating: */
SELECT e.contest_id AS e__contest_id, e.vote_id AS e__vote_id,
e.entry_id AS e__entry_id, e.subcategory_id AS e__subcategory_id,
e.company AS e__company, e.website AS e__website,
e.email AS e__email, e.comments AS e__comments, e.votes AS e__votes
FROM entry_vote e WHERE (e.contest_id = ?)