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静态类
Nov 25 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
抓取并下载CSS中所有图片文件的php代码
Sep 26 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
PHP使用array_fill定义多维数组的方法
Mar 18 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 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脚本的10个技巧(8)
2006/10/09 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
Python Tkinter简单布局实例教程
2014/09/03 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
Python3实现二叉树的最大深度
2019/09/30 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
师范生的个人求职信范文
2014/01/04 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
《观潮》教学反思
2016/02/17 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js