public function postAjaxCheckDicvalSlugUnique() { $input = Input::all(); #Helper::dd(Input::all()); $json_request = array('status' => FALSE, 'responseText' => ''); $dic_id = Input::get('_dic_id'); $dic = Dic::find($dic_id); /** * Если словарь не найден - сообщаем об ошибке */ if (!is_object($dic)) { $json_request['responseText'] = 'Вы пытаетесь добавить запись в несуществующую сущность'; return Response::json($json_request, 200); } $id = Input::get('_id'); $slug = trim(Input::get('slug')); $name = Input::get('name'); $element = new DicVal(); if ($id) { $element = DicVal::find($id); } if (!is_object($element)) { $element = new DicVal(); } switch ((int) $dic->make_slug_from_name) { case 1: $input['slug'] = Helper::translit($input['name']); break; case 2: if (!$dic->hide_slug && !@$input['slug']) { $input['slug'] = Helper::translit($input['name']); } break; case 3: if ($dic->hide_slug && $element->slug == '') { $input['slug'] = Helper::translit($input['name']); } break; case 4: $input['slug'] = Helper::translit($input['name'], false); break; case 5: if (!$dic->hide_slug && !@$input['slug']) { $input['slug'] = Helper::translit($input['name'], false); } break; case 6: if ($dic->hide_slug && $element->slug == '') { $input['slug'] = Helper::translit($input['name'], false); } break; case 7: $input['slug'] = $input['name']; break; case 8: if (!$dic->hide_slug && !@$input['slug']) { $input['slug'] = $input['name']; } break; case 9: if ($dic->hide_slug && $element->slug == '') { $input['slug'] = $input['name']; } break; } $new_slug = $input['slug']; $json_request['new_slug'] = $new_slug; #Helper::d($new_slug); #Helper::tad($input); /** * Ищем записи в текущем словаре с новым системным именем */ $dicval = DicVal::where('slug', $new_slug)->where('dic_id', $dic_id); /** * Если мы редактируем существующую запись - исключаем ее ID из проверки */ if ($element->id) { $dicval = $dicval->where('id', '!=', $element->id); } $dicval = $dicval->first(); #Helper::ta($dicval); if (is_object($dicval)) { $json_request['responseText'] = 'Запись с таким системным именем уже существует'; $json_request['also_exists'] = $dicval->id; } else { $json_request['status'] = TRUE; } return Response::json($json_request, 200); }