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 mssql 数据库分页SQL语句
Dec 16 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
PHP制作万年历
Jan 07 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
Dec 18 PHP
PHP中的表达式简述
May 29 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
php实现小程序支付完整版
Oct 09 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
PHP大文件分割分片上传实现代码
Dec 09 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 @ at 记号的作用示例介绍
2014/10/10 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
php中的异常和错误浅析
2017/05/03 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
零基础php编程好学吗
2019/10/11 PHP
使用JavaScript switch case 另类写法
2010/03/14 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
python抓取网页中的图片示例
2014/02/28 Python
Python中实现对list做减法操作介绍
2015/01/09 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
对python中各个response的使用说明
2020/03/28 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
html5清空画布方法(三种)
2017/10/16 HTML / CSS
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
Solaris操作系统的线程机制
2015/07/28 面试题
采购部主管岗位职责
2014/01/01 职场文书
质量月活动策划方案
2014/03/10 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
离婚协议书范本样本
2014/08/19 职场文书
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android
Python四款GUI图形界面库介绍
2022/06/05 Python