/** * Reorder recursive pages * * @param array $pages * @param int $parent * @return void */ private function updateOrderRecursivePage($model, $pages, $parent) { foreach ($pages as $key => $page_arr) { // Get page ID $page_id = $page_arr['id']; // Update pages 1st level $page = $model->find($page_id); $page->parent_id = $parent; $page->order_id = $key + 1; $page->save(); $new_slug = \Load::pageTree($page->id, 'slug', '/'); $page->seo()->update(array('slug' => $new_slug)); // Recursive update if (array_key_exists('children', $page_arr)) { $this->updateOrderRecursivePage($model, $page_arr['children'], $page_id); } } }