sl0, давно разучились читать? league/mime-type-detection[1.0.0, ..., 1.3.0] - только для ^7.2
Т.к, она не подходит, из-за того что у него версию 8.1
То композер взял новее league/mime-type-detection[1.4.0, ..., 1.11.0]
Боже, да вы не лучше автора, тоже читать не умеете ошибки.
Павел, так сделайте это во временной таблице, а потом от туда отфильтруйте.
Да и временную таблицу не нужно делать. Вы же получаете результат просто из него тоже сделайте SELECT
П.С И запрос не страшный, страшный это на 1000 строк. Да и выбирать по * не рекомендуется, если только вам действительно нужны все данные.
П.С2 В общем почитайте про вложенные SELECT
Антон, == это чтобы не сломать гавно код от старых версий php.
== не рекомендуется использовать в новом коде, если не хотите не предсказуемого поведения.
это что за ректальный программист такую архитектуру для БД создал? Про нормализацию не знаем?
Да и кто вам мешает взять всю строку, а потом средствами ЯП, сделать что нужно?
Композер не удобен? О_О
Чувак, композер это самый удобный и быстрый инструмент, доступный только на PHP, у других языков альтернатива куда хуже и гемороней.
Hfnas, в том репозитории где пример на Symfony, есть адрес на мастер класс по Symfony. рекомендую его посмотреть. Хоть мастер класс и создавался под Симфони 4.3-4.4, но актуальность нисколько не потерял, а те знания, что вы там получите позволят без проблем использовать наработки при любой разработки.
П.С Мастер класс можно найти на торрентах, если жалко платить ;) рекомендую просматривать на скорости х2 (повествования слишком медленное)
Huntgold, правильно ищет, прежде чем бездумно писать прочитайте про лучшие практики и книги.
Таблицы базы данных принято называть во множественном числе.
public function setCreate($entityMS)
{
$this->entityManager->persist($entityMS);
$this->entityManager->flush(); // это делает обращение к БД для модификации данных
}
Это значит, что каждый раз вызывая этот метод, вы будете делать обращение к БД.
flush доктрины нужны вызывать только тогда, когда вы готовы изменить данные в БД.
Например подготовили все сущности нужными данными, а затем выполнили flush. + это так же автоматом оборачивается всё одной транзакцией, и если в середине запроса произойдёт ошибка, то откатятся все изменения и не останутся битые данные.
В данном случае, судя по вашему методу, вместо того, чтобы вставить за раз 2440 строк или разбить по 100-200 штук, вы вероятно вставляет по 1 строчки, а это будет 2440 запросов к бд.
Посмотрите как в примере используются flush(), там все действия на модификацию БД вынесении в сервис *handler (в папке Model/blabla/UseCase), там сначала выполняются все манипуляции с сущностями, а потом и только потом в самом самом конце вызывается flush.