基于 Symfony3.4
概念理解: bundle entity doctrine
流程:
在配置文件配置数据库信息
命令生成bundle文件
命令生成bundle的entity文件
写CURD
配置数据库 /app/config/parameters.yml
为保证数据库字符集 app/config/config.yml
执行
php bin/console doctrine:database:create数据库就创建好啦~创建一个 Entity 类 进到命令交互终端
php bin/console doctrine:generate:entity
首先让你输入Entity名称,输入首字母会有自动提示哦。 entity 有点类似模型, 表名 setting 字段 field, data,
不想添加新字段的话直接在 press <return> 处回车。
多了两个文件 /src/Finley/BlogBundle/Entity/Setting.php
<?php
namespace Finley\BlogBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Setting
*
* @ORM\Table(name="setting")
* @ORM\Entity(repositoryClass="Finley\BlogBundle\Repository\SettingRepository")
*/
class Setting
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="field", type="string", length=255, unique=true)
*/
private $field;
/**
* @var string
*
* @ORM\Column(name="data", type="string", length=255)
*/
private $data;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set field
*
* @param string $field
*
* @return Setting
*/
public function setField($field)
{
$this->field = $field;
return $this;
}
/**
* Get field
*
* @return string
*/
public function getField()
{
return $this->field;
}
/**
* Set data
*
* @param string $data
*
* @return Setting
*/
public function setData($data)
{
$this->data = $data;
return $this;
}
/**
* Get data
*
* @return string
*/
public function getData()
{
return $this->data;
}
}/src/Finley/BlogBundle/Repository/SettingRepository.php
<?php
namespace Finley\BlogBundle\Repository;
/**
* SettingRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class SettingRepository extends \Doctrine\ORM\EntityRepository
{
}- 根据 entity 定义文件生成真正的表, 可以先用下面的命令打印出SQL,不真正执行
php bin/console doctrine:schema:create --dump-sql。 然后php bin/console doctrine:schema:create
官方建议如果后期要修改表结构,不建议直接修改entity文件,通过新建迁移文件的方式
问题:
- entity 加入 created_at, updated_at
- 定义 relation
参考: https://symfony.com/doc/3.4/doctrine.htmlhttps://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html


