A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > Symfony2实现在doctrine中内置数据的方法

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

时间:2016-02-06 19:28作者:fang人气:46

本文实例讲述了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程序设计有所帮助。

标签Symfony2,现在,doctrine,内置,数据,方法

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号