夹具Alice Symfony

时间:2015-07-21 13:40:44

标签: php symfony doctrine-orm alice-fixtures

我使用hautelook / alice-bundle我需要为我的开发人员加载技能我写的是SkillsLoader.php:

class LoadSkillssData extends AbstractFixture implements OrderedFixtureInterface
{
public function load(ObjectManager $manager)
{
    $all_skills =
        [
            'doctrine 2',
            'Memcache',
            'QA',
            'testing',
            'web design',
            'EJB 3'
        ];
    for ($i = 1; $i<=172; $i++ )
    {
        $skills = new Skills();
            $skills -> setId($i);
            $skills ->setSkill($all_skills[$i]);
        $manager->persist($skills);
        $manager->flush();

    }
 }

public function getOrder()
{
    return 1; // the order in which fixtures will be loaded
}

但我为实体技能创建了setId(),因为我的错误ID不能为null。但是我的问题是如何在yml文件中使用alice-bundleand我canu pload技能fixteures,这是我有

Artel\CustomerBundle\Entity\Cities:
 cities{1..50}:
 city: <city()>

Artel\CustomerBundle\Entity\Developers:
users{1..20}:
location: @cities*
level: <?php $names = ['Junior', 'Middle', 'Senior']; echo $names[array_rand($names)]; ?>
main_skill: @skills*
firstName: <firstName()>
lastName: <lastName()>
username: <firstNameMale()>
telephone: <phoneNumber()>
skype: skypeName
email: <email()>
password: <password()>
roles: <?php $names = ['ROLE_ADMIN', 'ROLE_USER', 'ROLE_AGENT', 'ROLE_COMPANY']; echo $names[array_rand($names)]; ?>

Artel\CustomerBundle\Entity\Skills:
skills{1..30}:
skill: ????

1 个答案:

答案 0 :(得分:0)

This tutorial涵盖了所有内容。您可以为每个实体创建不同的YAML文件,并按正确的顺序(通过依赖性)加载它们,然后在其他灯具中引用技能。

如果您的问题是从YAML文件中创建技能需要构造调用,您也可以这样做(如教程中所示)。