Articles of orm

реализация «update if exists» в Doctrine ORM

Я пытаюсь INSERT OR UPDATE IF EXISTS в одной транзакции. в mysql я обычно использовал DUPLICATE KEY («ОБНОВЛЕНИЕ НА КЛЮЧЕ DUPLICATE».) Я знаю много решений этой проблемы, используя различные варианты и подзапросы SQL, но я пытаюсь реализовать это в Doctrine (PHP ORM ). Похоже, что для этого будут методы Doctrine, так как они настолько функциональны, […]

SQL-парсер в PHP?

UPD : Admin изменил заголовок, и я нашел решение: http://code.google.com/p/php–sql-parser/ Я пытаюсь заключить sql-запрос в php-массив. Например: SELECT col_name FROM tbl_name WHERE col_name> 0; Должен вернуть что-то вроде: array( 'table' => 'tbl_name', 'value' => array('col_name'), 'where' => array('col_name > 0') ); Я нашел это . Мб вы знаете какое-нибудь лучшее решение?

Хорошая библиотека PHP ORM?

Есть ли хорошая библиотека объектно-реляционного сопоставления для PHP? Я знаю PDO / ADO, но они, похоже, обеспечивают абстрагирование различий между поставщиками баз данных, а не фактическое сопоставление между моделью домена и реляционной моделью. Я ищу библиотеку PHP, которая работает аналогично тому, как Hibernate делает для Java и NHibernate для .NET.

Инъекционная инъекция с помощью гидратора Doctrine 2

Я создаю специальный гидратор в Doctrine 2 в проекте Symfony 2, но для того, чтобы он выполнял то, что ему нужно, ему нужна еще одна услуга. Документация для пользовательских гидраторов показывает только, как обеспечить класс гидратора, поэтому нет возможности вводить зависимости. Например: $em->getConfiguration()->addCustomHydrationMode('CustomHydrator', 'MyProject\Hydrators\CustomHydrator'); Я подозреваю, что Doctrine инициализирует сами гидраторы, и поэтому любые зависимости […]

Doctrine2: лучший способ обработки многих-ко-многим с дополнительными столбцами в справочной таблице

Мне интересно, какой лучший, самый чистый и самый простой способ работать со многими отношениями в Doctrine2. Предположим, что у нас есть альбом типа Master of Puppets от Metallica с несколькими треками. Но учтите тот факт, что один трек может появиться в более чем одном альбоме, например Battery by Metallica – три альбома показывают этот трек. […]

Symfony 2 / Doctrine: Как снизить количество запросов, не теряя при этом преимущества ORM?

Я использую Symfony 2.7 с Doctrine . Мои действия контроллера часто выглядят так: # my/namespace/Controller/ItemsController.php -> listAction() $items = $this->get('repository.items')->findAll(); return $this->render('itemsList.html.twig', array('items' => $items)); В моих шаблонах мне нравится перебирать связанные объекты : # my/namespace/Resources/views/itemsList.html.twig {% for item in items %} Item: {{ item.name }} <br/> Groups: <br/> <ul> {% for group in item.groups […]

Значение по умолчанию в Доктрине

Как установить значение по умолчанию в Doctrine 2?

Событие Doctrine postLoad для ассоциаций

В настоящее время у меня есть объект, который я бы хотел немного изменить при загрузке. Эта модификация будет одноразовым изменением, которое затем будет сохраняться в новом поле вместе с сущностью. Чтобы прояснить мою текущую цель: сущность – это «Местоположение» и является частью вложенного набора. Он имеет имя, значения lft / rgt и идентификатор. Одна вычислительно […]

Doctrine – Как распечатать реальный sql, а не только подготовленное заявление?

Мы используем Doctrine, PHP ORM. Я создаю такой запрос: $q = Doctrine_Query::create()->select('id')->from('MyTable'); а затем в функции, которую я добавляю в различных местах, где это необходимо, $q->where('normalisedname = ? OR name = ?', array($string, $originalString)); Позже, перед execute() этого объекта запроса, я хочу распечатать необработанный SQL, чтобы проверить его и сделать следующее: $q->getSQLQuery(); Однако это выводит […]

Доктрина: расширение класса сущностей

Я хотел бы расширить классы Entity \ Base, как это сделать в Doctrine 2.1? Мои исследования показали, что всякий раз, когда кто-то сталкивается с проблемой с этим, он переключается на Doctrine 1.2:) n Я использую конфигурацию yaml