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输出控制功能在简繁体转换中的应用
Oct 09 PHP
用函数读出数据表内容放入二维数组
Oct 09 PHP
PHP 截取字符串专题集合
Aug 19 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
PHP设计模式之装饰者模式代码实例
May 11 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 PHP
Laravel 修改验证异常的响应格式实例代码详解
May 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
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
jquery UI 1.72 之datepicker
2009/12/29 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
vue router demo详解
2017/10/13 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
基于Python的PIL库学习详解
2019/05/10 Python
python安装scipy的步骤解析
2019/09/28 Python
wxPython实现绘图小例子
2019/11/19 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
Python 读取位于包中的数据文件
2020/08/07 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
教师演讲稿大全
2014/05/16 职场文书
会议简报格式范文
2015/07/20 职场文书
早安问候语大全
2015/11/10 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python