注: 该系列博文采用symfony2.7.*框架。
symfony2 项目框架(demo)
新建实体
<?php
/**
* Created by PhpStorm.
* User: Godruoyi
* Date: 2016/3/31
* Time: 8:58
*/
//实体类命名空间,
namespace MyFirst\HelloBundle\Entity;
use Doctrine\ORM\Mapping as ORM; //需要移入doctrine的核心库
//use Doctrine\ORM\Mapping\OneToOne;
/**
* 实体类, user
* @package MyFirst\HelloBundle\Entity
*
* 把该实体交给repository管里, 并在命令生产get set 方法时自动生产UserRepository,
* @ORM\Entity(repositoryClass="UserRepository")
*
* 对应的数据库表名
* @ORM\Table(name="t_user")
*/
class User
{
/**
* @var
*
* 标明该属性输一个主键ID
* @ORM\Id
*
* 字段类型 integer, 对应的数据库字段名t_id
* @ORM\Column(type="integer", name="t_id")
*
* 自增
* @ORM\GeneratedValue(strategy="AUTO")
*
*/
protected $id;
/**
* @var string
*
* @ORM\Column(type="string", name="t_username")
*/
protected $username;
/**
* @var string
*
* @ORM\Column(type="string", name="t_password")
*/
protected $password;
/**
* @var string
*
* @ORM\Column(type="string", name="t_email")
*/
protected $email;
/**
* @var string
*
* @ORM\Column(type="string", name="t_nickname")
*/
protected $nickname;
/**
* @var
*
* @ORM\Column(type="integer", name="t_age")
*/
protected $age;
修改数据库配置
修改 app/config/parameter.yml
parameters:
database_host: 127.0.0.1
database_port: null
database_name: symfony_my
database_user: root
database_password: ruoyi
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
secret: ThisTokenIsNotSoSecretChangeIt
自动生成数据库和get set方法 命令
windows下前面加php , Linux下不要php
#创建数据库
php app\console doctrine:database:create //windows
app\console doctrine:database:create //linux
#创建get set 方法, HelloBundle 是我在symfony中新建的一个bundle, 若新执行该命令在执行上面那条命令, 会显示数据库不存在
php app\console generate:doctrine:entities HelloBundle
#更新实体到数据库
php app\console doctrine:schema:update --force
执行完上述命令后, 会在数据库中产生一个表, 字段和实体类字段对应,
更新实体属性
要更新实体属性和数据库字段, 只要在需要更新得实体类中修改属性即可, 如我要在user中新加入一个 address, 并修改nickname为nickname2;
<?php
class User{
...其他属性
/**
* @var string
* 修改原来的 nickname 为 nickname2, 若只改属性明, 不改表名则数据库字段还是t_nickname
* @ORM\Column(type="string", name="t_nickname2")
*/
protected $nickname2;
/**
* @var
* 新增地址属性
* @ORM\Column(type="string", name="t_address")
*/
protected $address;
...get set 方法
}
执行
#创建get set 方法,
php app\console generate:doctrine:entities HelloBundle
#更新实体到数据库
php app\console doctrine:schema:update --force
即可完成对数据库和实体的更新