public static function flattenLocationsArray($location_options_array = null) { $location_options = array(); foreach ($location_options_array as $id => $value) { // get the top level key value $location_options[$id] = $value['name']; // If there is a key named children, it has child locations and we have to walk it if (array_key_exists('children', $value)) { foreach ($value['children'] as $child_id => $child_location_array) { $child_location_options = Location::flattenLocationsArray($value['children']); foreach ($child_location_options as $child_id => $child_name) { $location_options[$child_id] = '--' . $child_name; } } } } return $location_options; }
/** * Makes a form view to edit location information. * * @author [A. Gianotto] [<*****@*****.**>] * @see LocationsController::postCreate() method that validates and stores * @param int $locationId * @since [v1.0] * @return View */ public function getEdit($locationId = null) { // Check if the location exists if (is_null($location = Location::find($locationId))) { return redirect()->to('admin/settings/locations')->with('error', trans('admin/locations/message.does_not_exist')); } // Show the page $locations = Location::orderBy('name', 'ASC')->get(); $location_options_array = Location::getLocationHierarchy($locations); $location_options = Location::flattenLocationsArray($location_options_array); $location_options = array('' => 'Top Level') + $location_options; return View::make('locations/edit', compact('location'))->with('location_options', $location_options); }