/** * @param Menu $menu * @param MenuItem $item * @param Request $request * @param Page $page * @param Locale $locale * @param ModuleRoute $route * @return */ public function store(Menu $menu, MenuItem $item, Request $request, Page $page, Locale $locale, ModuleRoute $route) { $input = translation_input($request, ['name']); if (isset($input['page_id'])) { //make sure to set the default labels for the menu item $page = $page->findOrFail($input['page_id']); foreach ($locale->all() as $locale) { $translation = $page->translate($locale->slug); if ($translation) { $input[$locale->slug]['name'] = $translation->title; } } } elseif (isset($input['module_route_id'])) { //make sure to set the default labels for the menu item $route = $route->findOrFail($input['module_route_id']); foreach ($locale->all() as $locale) { $translation = $route->translate($locale->slug); if ($translation) { $input[$locale->slug]['name'] = $translation->title; } } } else { $rules = ['url' => 'required']; foreach ($this->account->account()->locales as $locale) { $rules = array_merge($rules, ["translations.{$locale->slug}.name" => 'required']); } $this->validate($request, $rules); } return $this->menu->createItem($input); }