首页 > 开发 > PHP > 正文

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

2024-05-04 23:42:52
字体:
来源:转载
供稿:网友
这篇文章主要介绍了Symfony2实现在doctrine中内置数据的方法,结合实例形式分析了在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.phpnamespace 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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表