public function __construct(Request $request) { $this->currentModel = new Content(); $this->langModel = new ContentLang(); $this->validation = \Validator::make($request->all(), ['name' => 'required:structure|max:255']); $modelStructure = new Structure(); $treeStructure = $modelStructure->get()->sortBy('position'); foreach ($treeStructure as $key => $struct) { $lang = StructureLang::where(['structure_id' => $struct['id'], 'language_id' => FormLang::getCurrentLang()])->first(); if ($lang) { $treeStructure[$key]->name = $lang->name; $treeStructure[$key]->link = action('\\Application\\Admin\\Http\\Controllers\\StructureController@getEdit', ['id' => $struct['id']]); } else { unset($treeStructure[$key]); } } $treeStructure->linkNodes(); $str = $treeStructure->toArray(); $witgetStructureTree = new TreeBuilder(); $TreeStructure = $witgetStructureTree->view($str, '<ul>{val}</ul>', '<li data-href="/admin/content/structure/{id}">{name}</li>', '<li data-href="/admin/content/structure/{id}" class="folder expanded">{name}<ul>{|}</ul></li>'); view()->share('StructureTree', $TreeStructure); view()->share('id_structure', $request->route('id_structure')); $this->itemName = 'Content'; $this->template = 'content'; $this->layout = 'dual_sidebars'; parent::__construct(); }
/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function postStore(Request $request) { $this->validation->mergeRules('alias', ['required', 'regex:/^[a-zа-я\\d-]+$/', 'unique:structure', 'max:255']); if ($this->validation->fails()) { return $this->validation->errors()->toJson(); } $structure = new Structure(); $data = $request->all(); $position = $this->currentModel->where('parent_id', null)->max('position'); $structure->alias = $data['alias']; $structure->parent_id = $data['parent_id']; $structure->controller = $data['controller']; $structure->position = ++$position; $structure->save(); $structure->structureLang()->create(['name' => $data['name'], 'language_id' => $data['language_id'], 'description' => $data['description']]); return Main::redirect(Route('edit_structure', ['id' => $structure->id]), '302', 'Structure was saved', 'Saved', 'success'); }