首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Symfony 2/Doctrine 2实体中存储空间点?

在Symfony 2/Doctrine 2实体中存储空间点,可以使用Doctrine的YAML配置文件或数据库抽象层。以下是在YAML配置文件和数据库抽象层中存储空间点的示例:

YAML配置文件

  1. config/packages/doctrine.yaml文件中添加配置项:
代码语言:yaml
复制

doctrine:

代码语言:txt
复制
   orm:
代码语言:txt
复制
       mappings:
代码语言:txt
复制
           App:
代码语言:txt
复制
               is_bundle:     true
代码语言:txt
复制
               type:           yaml
代码语言:txt
复制
               dir:            %kernel.root_dir%/config/doctrine
代码语言:txt
复制
               prefix:        App
代码语言:txt
复制
               alias:          App
代码语言:txt
复制
               attributes:
代码语言:txt
复制
                   metadata:
代码语言:txt
复制
                       namespace: App
代码语言:txt
复制
                       dir:   %kernel.root_dir%/config/doctrine
代码语言:txt
复制
                       prefix: App
代码语言:txt
复制
                       alias: App
代码语言:txt
复制
  1. config/packages/doctrine.yaml文件中添加具有空间点的YAML实体:
代码语言:yaml
复制

App:

代码语言:txt
复制
   entity_1:
代码语言:txt
复制
       name:      MyEntity1
代码语言:txt
复制
       type:      entity
代码语言:txt
复制
       query_cache:  true
代码语言:txt
复制
       metadata:
代码语言:txt
复制
           namespace: MyApp\Entity
代码语言:txt
复制
           dir:       %kernel.root_dir%/config/doctrine
代码语言:txt
复制
           prefix:   MyApp
代码语言:txt
复制
           alias:   MyApp\Entity
代码语言:txt
复制
       fields:
代码语言:txt
复制
           id:
代码语言:txt
复制
               type:     integer
代码语言:txt
复制
               id:      true
代码语言:txt
复制
               column:  id
代码语言:txt
复制
               generator:
代码语言:txt
复制
                   strategy:   IDENTITY
代码语言:txt
复制
           name:
代码语言:txt
复制
               type:     string
代码语言:txt
复制
               length:   ~
代码语言:txt
复制
               nullable: true
代码语言:txt
复制
               column:  name
代码语言:txt
复制
           point:
代码语言:txt
复制
               type:     point
代码语言:txt
复制
               nullable: true
代码语言:txt
复制
               column:  point
代码语言:txt
复制
       lifecycleCallbacks:
代码语言:txt
复制
           prePersist:  ~
代码语言:txt
复制
           preUpdate:  ~
代码语言:txt
复制
  1. 在实体类中使用setMetadata()方法设置YAML配置文件:
代码语言:php
复制

<?php

// src/Entity/MyEntity.php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**

代码语言:txt
复制
* @ORM\Entity(repositoryClass="App\Repository\MyEntityRepository")
* @ORM\Table(name="my_entities")
*/   class MyEntity
   {
       /**
        
代码语言:txt
复制
   /**
代码语言:txt
复制
    * @ORM\Column(type="string")
    */
   private $name;
代码语言:txt
复制
   /**
代码语言:txt
复制
    * @ORM\Column(type="point")
    */
   private $point;
代码语言:txt
复制
   public function getId(): ?int
代码语言:txt
复制
   {
代码语言:txt
复制
       return $this->id;
代码语言:txt
复制
   }
代码语言:txt
复制
   public function getName(): ?string
代码语言:txt
复制
   {
代码语言:txt
复制
       return $this->name;
代码语言:txt
复制
   }
代码语言:txt
复制
   public function setName(string $name): self
代码语言:txt
复制
   {
代码语言:txt
复制
       $this->name = $name;
代码语言:txt
复制
       return $this;
代码语言:txt
复制
   }
代码语言:txt
复制
   public function getPoint(): ?Point
代码语言:txt
复制
   {
代码语言:txt
复制
       return $this->point;
代码语言:txt
复制
   }
代码语言:txt
复制
   public function setPoint(Point $point): self
代码语言:txt
复制
   {
代码语言:txt
复制
       $this->point = $point;
代码语言:txt
复制
       return $this;
代码语言:txt
复制
   }

}

代码语言:txt
复制

数据库抽象层

  1. 创建Doctrine\ORM\Configuration实例,并设置配置:
代码语言:php
复制

<?php

// config/autoload/doctrine.php

return new Doctrine\ORM\Configuration(

代码语言:txt
复制
   new Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain([
代码语言:txt
复制
       'orm_default' => new Doctrine\ORM\Mapping\Driver\YamlDriver(
代码语言:txt
复制
           __DIR__ . '/config/doctrine/orm.yaml'
代码语言:txt
复制
       ),
代码语言:txt
复制
   ])

);

代码语言:txt
复制
  1. 创建doctrine.php配置文件:
代码语言:php
复制

<?php

return [

代码语言:txt
复制
   'doctrine' => [
代码语言:txt
复制
       'orm' => [
代码语言:txt
复制
           'mappings' => [
代码语言:txt
复制
               'App' => 'orm_default',
代码语言:txt
复制
           ],
代码语言:txt
复制
       ],
代码语言:txt
复制
   ],

];

代码语言:txt
复制
  1. 在实体类中使用setMetadata()方法设置数据库抽象层:
代码语言:php
复制

<?php

// src/Entity/MyEntity.php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**

代码语言:txt
复制
* @ORM\Entity(repositoryClass="App\Repository\MyEntityRepository")
* @ORM\Table(name="my_entities")
*/   class MyEntity
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券