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 相关文章推荐
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 PHP
php的hash算法介绍
Feb 13 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 PHP
win7安装php框架Yii的方法
Jan 25 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
PHP crypt()函数的用法讲解
Feb 15 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 03 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数据库连接
2006/10/09 PHP
对javascript和select部件的结合运用
2006/10/09 PHP
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
CI框架表单验证实例详解
2016/11/21 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
javascript+css实现进度条效果
2020/03/25 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
答题辅助python代码实现
2018/01/16 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
考博自荐信
2013/10/25 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
工作违纪检讨书
2014/02/17 职场文书
《猫》教学反思
2014/02/26 职场文书
5s标语大全
2014/06/23 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js