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(1)
Oct 09 PHP
使用 MySQL Date/Time 类型
Mar 26 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
PHP中实现获取IP和地理位置类分享
Feb 10 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
PHP的PDO操作简单示例
Mar 30 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHP判断是否微信访问的方法示例
Mar 27 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
php将字符串转换为数组实例讲解
May 05 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/03/11 PHP
PHP中用hash实现的数组
2011/07/17 PHP
php类常量的使用详解
2013/06/08 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
django创建自定义模板处理器的实例详解
2017/08/14 Python
Python管理Windows服务小脚本
2018/03/12 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python argparse模块应用实例解析
2019/11/15 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
蔻驰英国官网:COACH英国
2020/07/19 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
linux面试题参考答案(10)
2016/10/26 面试题
单位人事专员介绍信
2014/01/11 职场文书
应届护士求职信范文
2014/01/26 职场文书
机电专业求职信
2014/06/14 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
2019年教师入党申请书
2019/06/27 职场文书
React更新渲染原理深入分析
2022/12/24 Javascript