最新消息:文章中包含代码时,请遵守代码高亮规范!

项目实战-Symfony快速搭建数据库[原创]

Symfony2 Jay 1898浏览 0评论

前言:Symfony通过建立Entity构建实体类的方式来管理数据库,十分的方便。本文章是根据官方文档以及个人开发经验总结的实战文档,适合有一定基础的人员阅读,如果吃力,建议先阅读提供的参考文档。

参考文档:Symfony2用Entity新建数据库加入表前缀【原创】Symfony官方文档

版本 2.8

正文:

1:创建数据库

(1)设置数据库基本的连接属性

打开app/config/parameters.yml 文件进行配置

# app/config/parameters.yml
parameters:
    database_host:      localhost    数据库地址
    database_name:      test_project    数据库名称
    database_user:      root     数据库登录名
    database_password:  password  数据库登录密码

# ...

(2)创建数据库与删除数据库

$ php app/console doctrine:database:drop --force   删除数据库
$ php app/console doctrine:database:create   创建数据库

2:生成表结构

(1):创建Entity实体类

php app/console generate:doctrine:entity --entity=AcmeDemoBundle:Admin        [--entity:bundle名:实体名]

运行之后会在对应的Bundle下创建一个名为Entity的实体表目录,其中有你刚刚创建的实体类文件,还有一个Reopsitory目录,目前不需要关注

(2): 创建表结构–以及常用的字段

打开刚创建的实体文件,我们就可以构建自己的表结构了

(3):常用的表字段

<1>普通文本

 /**
 * @var string
 *
 * @ORM\Column(name="字段名", type="string", length=255,  options={"comment"="备注"})
 */
 private $字段属性名;

<2>text文本

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

<3>金额

 /**
 * @var string
 *
 * @ORM\Column(name="original_price", type="decimal", precision=10, scale=2, options={"comment"="原价", "default"="0.00"})
 */
 private $originalPrice;

<4>int

 /**
 * @var int
 *
 * @ORM\Column(name="number", type="integer", options={"comment"="库存"})
 */
 private $number;

<5>small_int

 /**
 * @var int
 *
 * @ORM\Column(name="type", type="smallint", options={"comment"="分类 "})
 */
 private $type;

<6>bool

 /**
 * @var bool
 *
 * @ORM\Column(name="is_enabled", type="boolean", nullable=true, options={"default"="1"})
 */
 private $isEnabled;

<7>排序字段

 /**
 * @var int
 *
 * @ORM\Column(name="sort_order", type="integer", nullable=true, options={"comment"="排序的序号", "default"=0})
 */
 private $sortOrder;

<8>时间

 /**
 * @var \DateTime
 *
 * @ORM\Column(name="create_time", type="datetime")  
 */
 private $createTime;

时间还有 date日期格式  time时间格式

(4): 常用的属性

<1>

 options={"comment"="排序的序号", "default"=0}        设置备注和默认值

<2>

length=255, nullable=true , unique=true          长度,是否为空,唯一

(5):other

<主键ID–自增>

 /**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
 private $id;

<外键简单实现>

 /**
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\GoodsCategory", inversedBy="goods")
 * @ORM\JoinColumn(name="goods_category_id", referencedColumnName="id")
 */
 private $goodsCategory;

具体可参考文档:http://doctrine-orm.readthedocs.io/en/latest/reference/association-mapping.html

4:将表结构应用到数据中

php app/console doctrine:schema:update --force

5:生成get-set方法

第一步:删除所有实体的get-set方法

第二步:运行

php app/console doctrine:generate:entities --no-backup

 

转载时请注明出处及相应链接,本文永久地址:http://blog.it985.com/18267.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Jay的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!