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中call_user_func_array的作用
Jun 07 PHP
浅析PHP中Collection 类的设计
Jun 21 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 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
GD输出汉字的函数的分析
2006/10/09 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
Python实现堆排序的方法详解
2016/05/03 Python
python微信好友数据分析详解
2018/11/19 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
Python实现Restful API的例子
2019/08/31 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
python脚本后台执行方式
2019/12/21 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
幼儿园六一儿童节活动方案
2014/08/26 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
党员剖析材料范文
2014/09/30 职场文书
庐山导游词
2015/02/03 职场文书
反腐倡廉观后感
2015/06/08 职场文书
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技