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 相关文章推荐
多文件上传的例子
Oct 09 PHP
PHP脚本中include文件出错解决方法
Nov 20 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
Yii框架上传图片用法总结
Mar 28 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 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 获得汉字拼音首字母的函数
2009/08/01 PHP
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
浅谈php自定义错误日志
2015/02/13 PHP
php经典算法集锦
2015/11/14 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
仅利用30行Python代码来展示X算法
2015/04/01 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
django加载本地html的方法
2018/05/27 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
数字漫画:comiXology
2020/06/13 全球购物
公司培训心得体会
2014/01/03 职场文书
数学系个人求职信范文
2014/01/30 职场文书
高中语文课后反思
2014/04/27 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
农民工讨薪标语
2014/06/26 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
2014年消防工作总结
2014/11/21 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
教师节主题班会教案
2015/08/17 职场文书
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers