Intereting Posts
Медленный поиск местоположения Asterisk AGI: Как получить или установить значение глобальной переменной? Как закрепить папку и загрузить ее с помощью php? Использование имен узлов XML с дефисами в PHP Ответ Php-сервера на андроид при выполнении пакетного файла Как создать дубликат элемента XML, но изменить имя элемента и удалить оригинал? Какие маркеры можно параметризовать в подготовленных отчетах PDO? Порядок предложения LIKE в запросе, когда вы хотите использовать несколько терминов PHP, повторение массива в строку разделенных запятыми значений PHP заполняет данные из базы данных при выборе района Максимальное время выполнения скрипта php script Доступ к переменным из родительской области в анонимной функции PHP отправить форму себе Должен ли я регенерировать_session_id на каждой странице? Перенаправление на новую страницу, когда пользователь использует Internet Explorer

Как сопоставить и использовать представление БД из Doctrine2

У меня есть вид на схему nomencladores называемую obtenerPaisesPorFabricanteProductoSolicitud . Это содержимое для представления:

 SELECT ps.id AS psid, ps.nombre, fps.id AS fpsid FROM ( ( nomencladores.pais ps JOIN nomencladores.pais_fabricante_producto_solicitud pfps ON ((pfps.pais_id = ps.id)) ) JOIN negocio.fabricante_producto_solicitud fps ON ( ( pfps.fabricante_producto_solicitud_id = fps.id ) ) ); 

Я пытаюсь отобразить представление следующим образом:

 use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="nomencladores.obtenerPaisesPorFabricanteProductoSolicitud", schema="nomencladores") */ class ObtenerPaisesPorFabricanteProductoSolicitud { /** * @ORM\Id * @ORM\Column(name="psid", type="integer", nullable=false, unique=true) */ protected $ps; /** * @ORM\Column(name="fpsid", type="integer") */ protected $fps; /** * @ORM\Column(name="nombre", type="string") */ protected $nombre; public function getPs() { return $this->ps; } public function getFps() { return $this->fps; } public function getNombre() { return $this->nombre; } } 

Но в любой момент я запускаю этот код:

 $ent = $em->getRepository("AppBundle:ObtenerPaisesPorFabricanteProductoSolicitud")->findBy( array( "fps" => $entF->getId() ) ); 

Я получил этот результат:

Исключение произошло при выполнении «SELECT t0.psid AS psid1, t0.fpsid AS fpsid2, t0.nombre AS nombre3 FROM nomencladores.obtenerPaisesPorFabricanteProductoSolicitud t0 WHERE t0.fpsid =? ' с параметрами [22]: SQLSTATE [42P01]: неопределенная таблица: 7 ОШИБКА: отношение «nomencladores.obtenerpaisesporfabricanteproductosolicitud» не существует LINE 1: … d1, t0.fpsid AS fpsid2, t0.nombre AS nombre3 FROM nomenclado …

Если я удалю аннотации, тогда на этом будет преобразование ошибки:

«Класс» AppBundle \ Entity \ ObtenerPaisesPorFabricanteProductoSolicitud «не является допустимым сущностью или отображенным суперклассом».

Почему Doctrine2 или Symfony пытается выполнить запрос, вместо этого просматривают представление? Как я могу выполнить представление со стороны Symfony2 / Doctrine2?

РЕДАКТИРОВАТЬ

В качестве побочного примечания я использую PostgreSQL в качестве базы данных, и у него есть несколько squemas, в этом случае я написал представление в схемах nomencladores но я попытался поместить также в public схему, и никто не работает, по-видимому Doctrine не находит вид на схеме