我的Laravel数据库项目中有一个处理动态菜单的递归表。出于测试目的,我想用随机元素为该表播种。
faker
库的随机元素可以用于菜单名称。问题是如何生成与该菜单表的任何元素匹配的 parent_id 数字。我给你举个例子:
+---------------------------+
| id | name | parent_id |
+---------------------------+
| 1 | animals | 0 |
|---------------------------|
| 2 | food | 0 |
|---------------------------|
| 3 | dog | 1 |
|---------------------------|
| 4 | potato | 2 |
|---------------------------|
| 5 | monkey | 1 |
+---------------------------+
随机数在这里不起作用,因为该表的某些条目不具有任何关联的父级。由于id是增量的,因此id会随时更改。 parent_id必须与某个id相关联。
我已经为第一级(parent_id = 0
)创建了工厂。但我现在不知道如何继续。
$factory->defineAs(App\Section::class, 'firstLevelMenu', function($faker) {
return [
'name' => $faker->unique->randomElement([
'animals',
'food'
]),
'parent_id' => '0'
];
});