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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
NOT NULL 和NULL
Jan 15 PHP
简化php模板页面中分页代码的解析
Feb 06 PHP
php 操作调试的方法
Jul 12 PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 PHP
解析crontab php自动运行的方法
Jun 24 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
thinkphp的dump函数无输出实例代码
Nov 15 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
Feb 04 PHP
PHP-FPM 的管理和配置详解
Feb 17 PHP
tp5.1框架数据库子查询操作实例分析
May 26 PHP
详解PHP中的8个魔术常量
Jul 06 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小偷的核心程序
2007/04/09 PHP
php调用mysql数据 dbclass类
2011/05/07 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
Python序列化基础知识(json/pickle)
2017/10/19 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
解析python的局部变量和全局变量
2019/08/15 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
保安拾金不昧表扬信
2014/01/15 职场文书
综合内勤岗位职责
2014/04/14 职场文书
情况说明书格式范文
2014/05/06 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
小学作文之描写天气
2019/08/15 职场文书
浅谈自定义校验注解ConstraintValidator
2021/06/30 Java/Android
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js