Symfony2实现在doctrine中内置数据的方法


Posted in PHP onFebruary 05, 2016

本文实例讲述了Symfony2实现在doctrine中内置数据的方法。分享给大家供大家参考,具体如下:

我们在使用symfony的时候,有时需要在数据库中内置一些数据,那么我们如何在doctrine中设置呢?

所幸,symfony已经为我们封装好了。这里,我们需要用到DoctrineFixturesBundle。

第一步,在composer.json中引入所需的DoctrineFixturesBundle:

{
  "require": {
    "doctrine/doctrine-fixtures-bundle": "2.2.*"
  }
}

第二步,执行composer:

composer update doctrine/doctrine-fixtures-bundle

第三步,在内核(app/AppKernel.php)中注册此bundle:

// ...
public function registerBundles()
{
  $bundles = array(
    // ...
    new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
    // ...
  );
  // ...
}

第四步,在需要内置数据的bundle下创建一个PHP类文件,如src/Acme/HelloBundle/DataFixtures/ORM/LoadUserData.php,其代码如下:

// src/Acme/HelloBundle/DataFixtures/ORM/LoadUserData.php
namespace Acme\HelloBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Acme\HelloBundle\Entity\User;
class LoadUserData implements FixtureInterface
{
  /**
   * {@inheritDoc}
   */
  public function load(ObjectManager $manager)
  {
    $userAdmin = new User();
    $userAdmin->setUsername('admin');
    $userAdmin->setPassword('test');
    $manager->persist($userAdmin);
    $manager->flush();
  }
}

第五步,通过console执行内置数据命令:

php app/console doctrine:fixtures:load #为防止数据库中原先的值被清除,可使用 --append 参数

此命令有以下三个参数:

?fixtures=/path/to/fixture ? Use this option to manually specify the directory where the fixtures classes should be loaded;
?append ? Use this flag to append data instead of deleting data before loading it (deleting first is the default behavior);
?em=manager_name ? Manually specify the entity manager to use for loading the data.

官方文档:http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html

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

希望本文所述对大家基于Symfony框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php 设计模式之 单例模式
Dec 19 PHP
php array_search() 函数使用
Apr 13 PHP
PHP 面向对象 final类与final方法
May 05 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
Apr 08 PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
Sep 24 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
Oct 24 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 PHP
Yii框架应用组件用法实例分析
May 15 PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 #PHP
twig模板获取全局变量的方法
Feb 05 #PHP
twig里使用js变量的方法
Feb 05 #PHP
Symfony2安装第三方Bundles实例详解
Feb 04 #PHP
Symfony2使用第三方库Upload制作图片上传实例详解
Feb 04 #PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 #PHP
Symfony2安装的方法(2种方法)
Feb 04 #PHP
You might like
php cookis创建实现代码
2009/03/16 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
python实现图像拼接
2020/03/05 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
大学生军训广播稿
2014/01/24 职场文书
房地产活动策划方案
2014/05/14 职场文书
励志演讲稿200字
2014/08/21 职场文书
工程承包协议书
2014/10/20 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
见习报告的格式
2014/11/04 职场文书
党校党性分析材料
2014/12/19 职场文书
面试复试通知单
2015/04/24 职场文书
田径运动会通讯稿
2015/07/18 职场文书
中学语文教学反思
2016/02/16 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python