Различия между FindOneBy и Find Doctrine

В Doctrine можно найти по идентификатору, например, если вы хотите иметь всю информацию о пользователе.

Сделать это можно так: $ em-> getRepository (User :: class) -> findOneBy (array ('id' => 1));

Или вы можете сделать это: $ em-> getRepository (User :: class) -> find (1);

Оба дают одинаковый результат, но для FindOneBy вы можете определить массив.

Что, если вы хотите искать только по идентификатору, что лучше? а почему лучше (мабы по производительности)?

Я думаю, что findOneBy полезен, когда вы хотите найти результат, основанный на нескольких условиях. В то время как find полезен для поиска результата, основанного только на id.

Dan Costinel 20.08.2018 11:58
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
1
919
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

С findOneBy вы можете:

->findOneBy(['id' => 1, 'enabled' => true], ['createdAt' => 'DESC']);

В противном случае find - это предпочтительный способ работы без запроса базы данных.

Например:

$swag = new Swag();
$swag->setSwagLevel(42);
$this->em->persist($swag); // Now you entity inside persistent collection, not in db.

$swag = $this->em->find(Swag::class, $swag->getId()) // Return entity from persistent collection, not from db in that case. Dump this $this->em->getUnitOfWork()->getScheduledEntityInsertions()


$user->giveSwag($swag);

$this->em->flush(); // Store all chain of changes to db.

Спасибо за ответ. И если вы используете find (..), как в вашем примере, будет ли это лучше для времени загрузки или чего-то еще? Я спросил об этом, потому что я обсуждаю со студентом, который всегда использует findOneBy, но я предпочитаю находить также, если я собираюсь искать только по идентификатору.

Stelt 20.08.2018 11:40

Во времени выполнения обоих не будет большой разницы.

Nabil Afraz 20.08.2018 16:24

Другие вопросы по теме