PHP Doktrin toArray sorun

3 Cevap php

I Doctrine olarak toArray () yöntemi ile bir sorunum var. Onun benim ilişkilerini almaz:

İlk sorgu:

$q = Doctrine::getTable('posts')->find(1);
debug($q->toArray(true));

Ilişkiler dışarı postID = 1 Yazdır

$q = Doctrine::getTable('posts')->find(1);
$q->Tags->toArray();
debug($q->toArray(true));

... Etiketi ile ilişkisi sonuçları yazdırır.

Ama yapmak istiyorum:

Doctrine::getTable('posts')->findAll()->toArray(true);

... Ve onun yerine ben sonrası satır bir dizi var, mesajların ilişkilerinin bütün olsun.

Bu ilişkiler çalışması yapmak konusunda herhangi bir fikir?

(I derin Emlak ToArray (true) ilave edin.

Herhangi bir yardım için teşekkür

3 Cevap

Siz bağlı tüm ilişkileri ile bu tablo için sorgu adını oluşturmak olabilir:

Doctrine::getTable('posts')->addNamedQuery('get.by.id.with.relations', 'DQL here...');

Ve sonra sadece bu gibi bir şey kullanabilirsiniz:

Doctrine::getTable('posts')->find('get.by.id.with.relations', array(123));

Ben bir sorgu ile katılın yapmak gerekir inanıyoruz. Aksi takdirde realated verileri hidrat değildir.

$q = Doctrine_Query::create()
    ->from('Post p')
    ->leftJoin('p.RelatedModel1 rm1')
    ->leftJoin('p.RelatedModel2 rm2');

$q->findAll()->toArray(true);
$q = Doctrine_Query::create()
->from('Post p')
->leftJoin('p.RelatedModel1 rm1')
->leftJoin('p.RelatedModel2 rm2');

$q->findAll()->toArray(true);

Can i Add ->limit()->offset() to the query ?

Ben ilk sorgu oluşturursanız o findAll doğru yürütmek olarak aynı hareket edeceğini Guss?