質問はdoctrine 1.2とSymfony 1.4についてです
要するに、単純な SQL クエリを実行し、PDO を使用して結果を配列にフェッチしています。その後、データをフェッチしたのと同じテーブルの Doctrine_Collection を作成し、synchronizeFromArray を呼び出してデータをコレクションにロードします。
すべて問題ありません-コレクションが作成され、実際の値ではなくブール値のfalseである主キーの横にあるすべてのデータが作成されます。
コードの例を次に示します。
// Fetch single object from DB
$sql = "SELECT * FROM payments LIMIT 1";
$p = $connection->query($sql)->fetchAll(PDO::FETCH_ASSOC);
var_dump($p); // I see that all the data including `id` is ok
$c = new Doctrine_Collection('Payment', 'id');
$c->synchronizeFromArray($p);
var_dump($c->toArray()); // All the data is ok but `id` == false
synchronizeFromArray の代わりに Doctrine_Collection::fromArray を使用しようとしましたが、同じ結果が得られます