ult*_*tum 1 fixtures symfony symfony5
当我添加新的灯具文件时
/**
* {@inheritdoc}
*/
public function load(ObjectManager $manager): void
{
// get user fixtures
$user = $this->getReference(LoadUserData::USER_REFERENCE);
$userSecond = $this->getReference(LoadUserData::USER_TWO_REFERENCE);
$productFirst = Product::create($user, 'title1', 'title1', 'description3', null, null);
$manager->persist($productFirst);
$productSecond = Product::create($user, 'title2', 'title2', 'description2', null, null);
$manager->persist($productSecond);
$productThird = Product::create($userSecond, 'title3', 'title3', 'description3', null, null);
$manager->persist($productThird);
$manager->flush();
}
/**
* @return array
*/
public static function getGroups(): array
{
return ['demo', 'default'];
}
Run Code Online (Sandbox Code Playgroud)
我发现错误
清除数据库
加载 DataFixtures\LoadUserData
在 ReferenceRepository.php 第 154 行:
对“ROLE_USER”的引用不存在
类 LoadRoleData 有方法 getOrder(),但它不起作用。
public function getOrder()
{
return 1; // the order in which fixtures will be loaded
}
Run Code Online (Sandbox Code Playgroud)
早先都搞定了。
清除数据库
加载 DataFixtures\LoadRoleData
加载 DataFixtures\LoadUserData
...
更新:类 LoadUserData 有
/**
* {@inheritdoc}
*/
public function getDependencies()
{
return [
LoadRoleData::class
];
}
Run Code Online (Sandbox Code Playgroud)
但它也不起作用((
如何在 Symfony5 中设置角色夹具的顺序?
小智 7
与其决定插入设备的顺序,不如让 Symfony 来决定。
为此,您的夹具类应该实现DependentFixtureInterface并覆盖 method getDependencies()。在你的情况下,它应该是这样的:
<?php
namespace App\DataFixtures;
class LoadUserData extends Fixture implements DependentFixtureInterface
{
public function getDependencies()
{
return [
LoadRoleData::class,
];
}
}
Run Code Online (Sandbox Code Playgroud)
现在,Symfony 将知道它需要先插入 LoadRoleData。
使用DependentFixtureInterface,如果您已正确设置依赖项,则不必担心插入的顺序。
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |