Symfony快速搭建数据库的例子

作者:袖梨 2022-06-25


版本 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
 *
 * @ORMColumn(name="字段名", type="string", length=255,  options={"comment"="备注"})
 */
 private $字段属性名;
<2>text文本

 /**
 * @var string
 *
 * @ORMColumn(name="content", type="text")
 */
 private $content;
<3>金额

 /**
 * @var string
 *
 * @ORMColumn(name="original_price", type="decimal", precision=10, scale=2, options={"comment"="原价", "default"="0.00"})
 */
 private $originalPrice;
<4>int

 /**
 * @var int
 *
 * @ORMColumn(name="number", type="integer", options={"comment"="库存"})
 */
 private $number;
<5>small_int

 /**
 * @var int
 *
 * @ORMColumn(name="type", type="smallint", options={"comment"="分类 "})
 */
 private $type;
<6>bool

 /**
 * @var bool
 *
 * @ORMColumn(name="is_enabled", type="boolean", nullable=true, options={"default"="1"})
 */
 private $isEnabled;
<7>排序字段

 /**
 * @var int
 *
 * @ORMColumn(name="sort_order", type="integer", nullable=true, options={"comment"="排序的序号", "default"=0})
 */
 private $sortOrder;
<8>时间

 /**
 * @var DateTime
 *
 * @ORMColumn(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
 *
 * @ORMColumn(name="id", type="integer")
 * @ORMId
 * @ORMGeneratedValue(strategy="AUTO")
 */
 private $id;
<外键简单实现>

 /**
 * @ORMManyToOne(targetEntity="AppBundleEntityGoodsCategory", inversedBy="goods")
 * @ORMJoinColumn(name="goods_category_id", referencedColumnName="id")
 */
 private $goodsCategory;

 

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

php app/console doctrine:schema:update --force
5:生成get-set方法

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

第二步:运行

doctrine:generate:entities --no-backup

相关文章

精彩推荐