2013-12-03 1 views
1

Я пытаюсь добавить строку, связанную с ней (один к одному), без необходимости выполнять поиск. Например:Symfony 2 добавить строку без соответствующего поиска строки

$row = new Product(); 
$row->setField1('123'); 
$row->setRelatedFieldId(3); 

Что я должен сделать сейчас:

$related_record = $repo->find(3); 
$row->setRelatedName($related_record); 

Но Symfony делает второй поиск там. Это отличная функциональность для поиска, возможность связи между разными таблицами, но у меня уже есть идентификатор связанной строки, я бы предпочел не делать другого запроса на нее, прежде чем делать вставку. Какие-либо предложения?

ответ

2

Заменить:

$related_record = $repo->find(3); 

С:

$related_record = $em->getReference('ClassName',123); 

Это дает вам ссылку к связанному объекту, который затем можно использовать для установления отношений. Сам объект не будет загружен. Это зависит от вас, чтобы обеспечить существование объекта 123.

Я должен указать, что с буферизацией и кешированием вы, вероятно, не сэкономите, используя ссылку.