Intereting Posts
PHP: exec () не работает в фоновом режиме даже с помощью «> / dev / null 2> & 1 &" Ограничение доступа IFRAME в PHP Преобразование вывода GD в base64 401 Ошибка аутентификации, когда SoapClient пытается получить файл схемы как вызвать функцию PHP из кнопки формы Почему apache не показывает ошибку 404, когда я отправляю заголовок 404 с php? Как использовать файлы cookie в двух разных доменах? Как проверить, является ли массив PHP ассоциативным или последовательным? Мой файл .htaccess не работает PHP Pass File Handle для пользователя, чтобы файлы загружались и сохранялись на их машине php для генерации раскрывающихся списков MM / DD / YYY и HH / MM с выбранной текущей датой Отправка / отображение изображения с кодировкой base64 PHP: Может ли CURL следовать мета-перенаправлению? Как я могу сделать эти строки PHP короче? Архив обратного изображения: складывание изображений снизу вверх с помощью CSS / Javascript?

Как получить идентификатор без участия в doctrine2?

У меня есть сущность:

/** * * @Table(name="table") * @Entity */ class Table { /** * @Column(type="integer") * @Id * @GeneratedValue(strategy="IDENTITY") */ private $id; /** * @ManyToOne(targetEntity="Entities\Users") * @joinColumn(name="userId", referencedColumnName="id") */ private $User; /** * @Column(type="string") */ private $text; } 

Если я делаю $q->getQuery()->getSingleResult()->getUser()->getUserId()

doctrine генерирует запрос типа:

 SELECT * FROM table t INNER JOIN users u ON u.id = t.userId WHERE id = 100 

но если мне не нужны пользователи таблицы, как получить userId.

В чистом SQL я могу просто

 SELECT * FROM table WHERE id = 100 

и получите пользовательскую таблицу без соединения пользователей.

Вы также можете посмотреть функцию IDENTITY () (версия Doctrine> 2.2).

Пример:

 SELECT IDENTITY(t.User) AS user_id from Table 

Должен вернуться:

 [ ['user_id' => 1], ['user_id' => 2], ... ] 

См. Также: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#dql-functions

Попробуй это:

 $q = $qb->getQuery(); $q->setHint(\Doctrine\ORM\Query::HINT_INCLUDE_META_COLUMNS, true); 

Согласно документации, сущности D2 никогда не должны подвергаться внешнему ключу, поскольку все это делается внутренне с помощью информации о сопоставлении, однако, как вы выяснили, существует потребность в том, чтобы получить это значение. Для этого просто поставьте информацию о сопоставлении для внешнего ключа.

Я не знаю doctrine2, но из того, что я прочитал, это ORM. Поэтому я хотел бы предложить, чтобы вам нужна форма ленивой загрузки, где пользователь не загружен. В этой статье предлагается, что ленивая загрузка доступна в doctrine2 .

Это может привести к нескольким вызовам db, если впоследствии пользователь будет использовать возвращаемую таблицу. Вы должны взвесить это с идеей захвата данных одним ударом.