settings) || empty($data->settings) || !json_decode($data->settings)) { throw new MissingParameterException('settings'); } $links = json_decode($data->settings); $pages = self::selectContentPages(array_keys((array)$links)); foreach ($links as $link) { if (!isset($pages[$link->id])) { unset($links->{$link->id}); } } $settings = [ 'links' => $links, 'containerClass' => $data->containerClass ]; $widget->settings = json_encode($settings); return $widget; } public static function selectContentPages($ids) { $pages = Content::where('language', LaravelLocalization::getCurrentLocale()) ->whereIn('id', $ids) ->get(); $used = []; foreach ($pages as $page) { $used[$page->id] = $page; } return $used; } }