本文实例讲述了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:是的,我知道我可以修改所有访问器并手动实现此功能,但是我正在寻找一些方便的方法 问题答案: 您可以使用 获取。 然后只需通过触发变更集计算(仅适用于托管实体)。 您也可以使用类似的方法,例如,如果您确切知道要检查的内容而无需遍历整个对象图。 之后,您可以用来检