unique()->word(); $configModel = fake()->randomElement(PageConfig::all()); $status = fake()->randomElement(PageStatusEnum::cases()); return [ 'id_key' => Str::slug($title), 'title' => $title, 'slug' => Str::slug($title), 'content' => self::getDataFromConfig($configModel), 'page_id' => null, 'config_id' => $configModel->getKey(), 'status' => $status, 'isLocked' => fake()->boolean(50), ]; } /** * Get values from a specific config. * * @param \App\Models\PageConfig $configModel * @return array */ private function getDataFromConfig(PageConfig $configModel): array { foreach ($configModel->config as $field) { switch ($field['type']) { case DynamicFieldTypes::string->value: $configValue[$field['key']] = fake()->words(5, true); break; case DynamicFieldTypes::textarea->value: $configValue[$field['key']] = fake()->words(10, true); break; case DynamicFieldTypes::wysiwyg->value: $configValue[$field['key']] = sprintf("

%s

", fake()->text(160)); break; case DynamicFieldTypes::number->value: $configValue[$field['key']] = fake()->numberBetween(0, 255); break; case DynamicFieldTypes::boolean->value: $configValue[$field['key']] = fake()->boolean(50); break; case DynamicFieldTypes::url->value: $configValue[$field['key']] = fake()->url(); break; case DynamicFieldTypes::email->value: $configValue[$field['key']] = fake()->email(); break; case DynamicFieldTypes::image->value: // Fake image in seeder. $configValue[$field['key']] = null; break; case DynamicFieldTypes::list->value: $configValue[$field['key']] = [ [ $field['children'][0]['key'] => fake()->unique()->word(), 'order' => 1, ], ]; break; default: $configValue = []; break; } } //end foreach return $configValue; } }