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.ini中文版(2)
Oct 09 PHP
php反弹shell实现代码
Apr 22 PHP
php简单提示框alert封装函数
Aug 08 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
Yii核心组件AssetManager原理分析
Dec 02 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
PHP.vs.JAVA
Apr 29 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
php事务回滚简单实现方法示例
Mar 28 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
总经理助理的八要求
2013/11/12 职场文书
汽车技术服务英文求职信范文
2014/01/02 职场文书
个人实习生的自我评价
2014/02/16 职场文书
股权转让协议书
2014/04/12 职场文书
春游踏青活动方案
2014/08/14 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
政审证明材料
2015/06/19 职场文书