• 技术文章 >后端开发 >php教程

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

    2016-05-28 11:48:49原创349
    本文实例讲述了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程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:Symfony2安装的方法(2种方法)_PHP 下一篇:Symfony2使用第三方库Upload制作图片上传实例详解_PHP
    PHP编程就业班

    相关文章推荐

    • 详解win10下PHP的安装配置(以php5.6为例)• php Swoole实现毫秒定时计划任务(详解)• 【DTM】PHP协程客户端v0.1 beta版本发布啦!• PHP 对 memcache操作类• PHP中类的理解和应用[一]_PHP教程

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网