《PHP學習:Symfony2實現在doctrine中內置數據的方法》要點:
本文介紹了PHP學習:Symfony2實現在doctrine中內置數據的方法,希望對您有用。如果有疑問,可以聯系我們。
PHP實戰本文實例講述了Symfony2實現在doctrine中內置數據的辦法.分享給大家供大家參考,具體如下:
PHP實戰我們在使用symfony的時候,有時需要在數據庫中內置一些數據,那么我們如安在doctrine中設置呢?
PHP實戰所幸,symfony已經為我們封裝好了.這里,我們需要用到DoctrineFixturesBundle.
PHP實戰第一步,在composer.json中引入所需的DoctrineFixturesBundle:
PHP實戰
{
"require": {
"doctrine/doctrine-fixtures-bundle": "2.2.*"
}
}
PHP實戰第二步,執行composer:
PHP實戰
composer update doctrine/doctrine-fixtures-bundle
PHP實戰第三步,在內核(app/AppKernel.php)中注冊此bundle:
PHP實戰
// ...
public function registerBundles()
{
$bundles = array(
// ...
new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
// ...
);
// ...
}
PHP實戰第四步,在需要內置數據的bundle下創建一個PHP類文件,如src/Acme/HelloBundle/DataFixtures/ORM/LoadUserData.php,其代碼如下:
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();
}
}
PHP實戰第五步,通過console執行內置數據命令:
PHP實戰
php app/console doctrine:fixtures:load #為防止數據庫中原先的值被清除,可使用 --append 參數
PHP實戰此命令有以下三個參數:
PHP實戰Cfixtures=/path/to/fixture C Use this option to manually specify the directory where the fixtures classes should be loaded;
Cappend C Use this flag to append data instead of deleting data before loading it (deleting first is the default behavior);
Cem=manager_name C Manually specify the entity manager to use for loading the data.
PHP實戰官方文檔:http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html
PHP實戰本文永久地址:http://blog.it985.com/6662.html
本文出自 IT985博客 ,轉載時請注明出處及相應鏈接.
PHP實戰更多關于PHP框架相關內容感興趣的讀者可查看本站專題:《php優秀開發框架總結》,《codeigniter入門教程》,《CI(CodeIgniter)框架進階教程》,《Yii框架入門及常用技巧總結》及《ThinkPHP入門教程》
PHP實戰希望本文所述對大家基于Symfony框架的PHP程序設計有所贊助.
維易PHP培訓學院每天發布《PHP學習:Symfony2實現在doctrine中內置數據的方法》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。