📜  symfony 2.8 从实体创建数据库 - PHP (1)

📅  最后修改于: 2023-12-03 15:05:26.783000             🧑  作者: Mango

使用 Symfony 2.8 从实体创建数据库

在 Symfony 2.8 中,使用 doctrine 进行数据库操作是非常常见的。本文将介绍如何通过实体创建并配置数据库。

1. 在 Symfony 2.8 中创建实体

在创建实体之前,需要先安装 Doctrine。在项目根目录下运行以下命令:

$ composer require doctrine

接下来在 src/ 目录下新增一个实体类,示例代码如下:

// src/AppBundle/Entity/Product.php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ProductRepository")
 * @ORM\Table(name="product")
 */
class Product
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name;

    /**
     * @var float
     *
     * @ORM\Column(name="price", type="float")
     */
    private $price;

    // ...
}
2. 通过实体创建数据库

在生成数据库之前,需要先配置 Doctrine。在 app/config/config.yml 文件中新增以下配置:

# app/config/config.yml

doctrine:
    dbal:
        driver: pdo_mysql
        host: '%database_host%'
        port: '%database_port%'
        dbname: '%database_name%'
        user: '%database_user%'
        password: '%database_password%'
        charset: UTF8
        default_table_options:
            charset: UTF8
            collate: UTF8_general_ci
    orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        auto_mapping: true

然后在 app/config/parameters.yml 文件中添加数据库连接配置,示例如下:

# app/config/parameters.yml

parameters:
    database_host: 127.0.0.1
    database_port: null
    database_name: symfony
    database_user: root
    database_password: null

接下来运行以下命令生成数据库:

$ php bin/console doctrine:database:create
$ php bin/console doctrine:schema:create

生成数据库之后,可以在 MySQL 控制台查看是否生成了名为 symfony 的数据库以及对应的 product 表。

结论

本文介绍了在 Symfony 2.8 中如何通过实体创建并配置数据库,并生成数据库。通过实体操作数据库是 Symfony 开发中经常使用的一种方式,可以快速统一实体的数据结构,方便进行数据库操作。