当前位置: 首页 > 编程笔记 >

Symfony2实现在doctrine中内置数据的方法

杨飞语
2023-03-14
本文向大家介绍Symfony2实现在doctrine中内置数据的方法,包括了Symfony2实现在doctrine中内置数据的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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博客 ,转载时请注明出处及相应链接。

更多关于PHP框架相关内容感兴趣的读者可查看本站专题:《php优秀开发框架总结》,《codeigniter入门教程》,《CI(CodeIgniter)框架进阶教程》,《Yii框架入门及常用技巧总结》及《ThinkPHP入门教程》

希望本文所述对大家基于Symfony框架的PHP程序设计有所帮助。

 类似资料:
  • 本文向大家介绍thinkPHP5实现数据库添加内容的方法,包括了thinkPHP5实现数据库添加内容的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP5实现数据库添加内容的方法。分享给大家供大家参考,具体如下: 面对一个新框架安装好了一般不知道要干啥。那就先做一个写入功能先。 先做好准备工作先,首先要连接上数据库。 配置文件在application下的database.

  • 本文向大家介绍Python实现读取TXT文件数据并存进内置数据库SQLite3的方法,包括了Python实现读取TXT文件数据并存进内置数据库SQLite3的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现读取TXT文件数据并存进内置数据库SQLite3的方法。分享给大家供大家参考,具体如下: 当TXT文件太大,计算机内存不够时,我们可以选择按行读取TXT文件,并将其存

  • 本文向大家介绍php获取数据库中数据的实现方法,包括了php获取数据库中数据的实现方法的使用技巧和注意事项,需要的朋友参考一下 废话不多说,直接上代码 这是获取完之后转成json格式 以上这篇php获取数据库中数据的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 您能否分享您的想法,如何在MongoDB中实现数据版本控制。(我也曾问过有关Cassandra的类似问题。如果您有任何想法,哪个数据库更好,请分享) 假设我需要在一个简单的通讯簿中对记录进行版本控制。(地址簿记录存储为平面json对象)。我希望这段历史: 将很少使用 将一次全部使用,以“时间机器”的方式呈现 一个记录不会有超过几百个的版本。历史不会过期。 我正在考虑以下方法: 创建一个

  • 问题内容: 我有大约40个实体和许多双向关系。每当我使用var_dump($ user)或任何实体时,我的浏览器就会加载过多的数组和变量数据,然后它就会崩溃。 我想出什么问题。 数据已正确插入。我可以在生产中引起问题吗? 问题答案: 用Doctrine Common提供的调试方法 dump() 替换 var_dump() 。 它适用于单个对象和Doctrine集合,并且应防止浏览器显示您遇到的问题

  • 问题内容: 假设我检索一个实体并使用setter修改了它的状态: 是否有可能检索已更改的字段数组? 在我的例子的情况下,我想检索结果 PS:是的,我知道我可以修改所有访问器并手动实现此功能,但是我正在寻找一些方便的方法 问题答案: 您可以使用 获取。 然后只需通过触发变更集计算(仅适用于托管实体)。 您也可以使用类似的方法,例如,如果您确切知道要检查的内容而无需遍历整个对象图。 之后,您可以用来检