Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 原则2-使用数据库中的视图生成实体_Database_View_Doctrine Orm - Fatal编程技术网

Database 原则2-使用数据库中的视图生成实体

Database 原则2-使用数据库中的视图生成实体,database,view,doctrine-orm,Database,View,Doctrine Orm,是否可以使用原则2从数据库生成视图 我解释: 我的数据库包含一些我想使用的视图,但我不知道如何生成这些视图 在我的例子中,我有两个表和一个视图,视图在每个表中选择几个列,我只想将此视图放在项目的“实体”文件夹中。数据库视图目前不受Doctrine 2的支持,但它的性能可能非常差。自己尝试将视图映射为实体,并将其标记为@readOnly实体。对于对答案感兴趣的人: 我的回答基于以下几点: 例如,如果您有一个列为“Id”和“Name”的视图“a”: 在src/Name/YourBundle/Res

是否可以使用原则2从数据库生成视图

我解释:

我的数据库包含一些我想使用的视图,但我不知道如何生成这些视图


在我的例子中,我有两个表和一个视图,视图在每个表中选择几个列,我只想将此视图放在项目的“实体”文件夹中。

数据库视图目前不受Doctrine 2的支持,但它的性能可能非常差。自己尝试将视图映射为实体,并将其标记为@readOnly实体。

对于对答案感兴趣的人:

我的回答基于以下几点:

例如,如果您有一个列为“Id”和“Name”的视图“a”:

在src/Name/YourBundle/Resources/config/doctrine中,使用如下属性创建“A.orm.yml”:

Name\YourBundle\Entity\A:
type: entity
table: A
fields:
    id:
        id: true
        type: integer
        unsigned: false
        nullable: false
        column: id
        generator:
            strategy: IDENTITY
    name:
        type: string
        length: 35
        fixed: false
        nullable: true
        column: name
之后,在Name/YourBundle/Entity/A中创建A.php:

namespace Name\YourBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="A")
 */
class A {

    /**
    * @Id @Column(type="integer")
    */
    private $id;
    private $name;

    public function getId() {
        return $this->id;
    }

    public function getName() {
        return $this->name;
    }

}

而且。。。你可以用你的控制器调用你的视图。

你的意思是在上下文中的视图吗?不,我的意思是,那种类型的视图。例如,我有一个数据库(toto),其中有两个表(tata et titi)和一个视图(viewTataTiti),它们在这两个表中选择结果。。。我只是想恢复这一观点。你在哪里看到的?你自己试试看。Doctrine2模式工具无法将视图识别为表,因为它是一个状态。我将在明天的工作中尝试。看最后一点,26.2.1,希望可能。。。实际上,不同RDM中的视图可能是可更新或可插入的(即,它们并不总是只读的)。例如,对于mysql:。由于使视图可更新或不可更新的不同RDM的标准是高度技术性的(并且是依赖性的),我认为Doctrine可能已经选择无论如何发送查询并让数据库拒绝查询…@VincentPazeller,
我认为Doctrine可能已经选择无论如何发送查询并让数据库拒绝查询…
。完全同意这对你有用吗?我在试着让它工作时遇到了一些问题。看这篇文章。这个答案完全错了,OP提出了一些不同的问题。