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

来源:互联网 发布:新思路计算机二级软件 编辑:程序博客网 时间:2024/06/01 08:28

注: 该系列博文采用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 //windowsapp\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;

<?phpclass 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

1 0