分类分类
更新时间:2026-04-09 17:17:13作者:fang
本文实例讲述了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 DoctrineBundleFixturesBundleDoctrineFixturesBundle(),
// ...
);
// ...
}
第四步,在需要内置数据的bundle下创建一个PHP类文件,如src/Acme/HelloBundle/DataFixtures/ORM/LoadUserData.php,其代码如下:
// src/Acme/HelloBundle/DataFixtures/ORM/LoadUserData.php
namespace AcmeHelloBundleDataFixturesORM;
use DoctrineCommonDataFixturesFixtureInterface;
use DoctrineCommonPersistenceObjectManager;
use AcmeHelloBundleEntityUser;
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.
希望本文所述对大家基于Symfony框架的PHP程序设计有所帮助。
相关
傲视神魔传手游策略游戏13.55 Mv1.0.02026-04-09
下载三国志王道天下策略游戏2.18Gv0.9.8.12026-04-09
下载风云三国手机版策略游戏213.99 M2026-04-09
下载星之海手机版角色扮演2.78Gv1.1.598772026-04-09
下载迪士尼梦幻王国经营养成79.34 Mv11.5.0h2026-04-09
下载TapAim动作射击97.92 Mv2.0.12026-04-09
下载肖邦大冒险九游版策略游戏133.64 Mv1.02026-04-09
下载放松时光与你共享Lo-Fi故事休闲益智951.66 Mv1.4.62026-04-09
下载羽毛球对决体育竞技175.66 Mv4.12026-04-09
下载假面骑士泽兹变身模拟器休闲益智51.91 Mv1.00.302026-04-09
下载餐车厨师烹饪游戏苹果版模拟游戏327.2 Mv8.682026-04-09
下载最终幻想7永恒危机ios版角色游戏1.5Gv3.6.02026-04-09
下载










