/** * Update the facets for a definition * * @param Eloquent $definition * * @return void */ private function updateFacets($definition) { $facet_types = \FacetType::all()->toArray(); foreach ($definition->facets() as $facet) { \Facet::delete($facet['id']); } foreach ($facet_types as $facet_type) { $facet_name = $facet_type['facet_name']; if (!empty($definition->{$facet_name})) { $facet = \Facet::create(['definition_id' => $definition->id, 'facet_id' => $facet_type['id'], 'facet_name' => $facet_type['facet_name'], 'value' => $definition->{$facet_name}]); $facet->save(); } } // Process keywords if present if (!empty($definition->keywords)) { // Split the keywords $keywords = explode(',', $definition->keywords); foreach ($keywords as $keyword) { $facet = \Facet::create(['definition_id' => $definition->id, 'facet_id' => $facet_type['id'], 'facet_name' => 'keyword', 'value' => $keyword]); $facet->save(); } } }