您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Symfony2如何實現在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.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.
以上是“Symfony2如何實現在doctrine中內置數據”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。