在Symfony 2/Doctrine 2实体中存储空间点,可以使用Doctrine的YAML配置文件或数据库抽象层。以下是在YAML配置文件和数据库抽象层中存储空间点的示例:
config/packages/doctrine.yaml
文件中添加配置项:
doctrine:
orm:
mappings:
App:
is_bundle: true
type: yaml
dir: %kernel.root_dir%/config/doctrine
prefix: App
alias: App
attributes:
metadata:
namespace: App
dir: %kernel.root_dir%/config/doctrine
prefix: App
alias: App
config/packages/doctrine.yaml
文件中添加具有空间点的YAML实体:
App:
entity_1:
name: MyEntity1
type: entity
query_cache: true
metadata:
namespace: MyApp\Entity
dir: %kernel.root_dir%/config/doctrine
prefix: MyApp
alias: MyApp\Entity
fields:
id:
type: integer
id: true
column: id
generator:
strategy: IDENTITY
name:
type: string
length: ~
nullable: true
column: name
point:
type: point
nullable: true
column: point
lifecycleCallbacks:
prePersist: ~
preUpdate: ~
setMetadata()
方法设置YAML配置文件:
<?php
// src/Entity/MyEntity.php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\MyEntityRepository")
* @ORM\Table(name="my_entities")
*/ class MyEntity
{
/**
/**
* @ORM\Column(type="string")
*/
private $name;
/**
* @ORM\Column(type="point")
*/
private $point;
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getPoint(): ?Point
{
return $this->point;
}
public function setPoint(Point $point): self
{
$this->point = $point;
return $this;
}
}
Doctrine\ORM\Configuration
实例,并设置配置:
<?php
// config/autoload/doctrine.php
return new Doctrine\ORM\Configuration(
new Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain([
'orm_default' => new Doctrine\ORM\Mapping\Driver\YamlDriver(
__DIR__ . '/config/doctrine/orm.yaml'
),
])
);
doctrine.php
配置文件:
<?php
return [
'doctrine' => [
'orm' => [
'mappings' => [
'App' => 'orm_default',
],
],
],
];
setMetadata()
方法设置数据库抽象层:
<?php
// src/Entity/MyEntity.php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\MyEntityRepository")
* @ORM\Table(name="my_entities")
*/ class MyEntity
领取专属 10元无门槛券
手把手带您无忧上云