您的位置:首页 > 编程语言 > PHP开发

Doctrine学习笔记(实体) —— 2

2016-03-31 13:41 651 查看
注: 该系列博文采用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


即可完成对数据库和实体的更新

form godruoyi supper
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  symfony php doctrine