InfoController.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers\Admin\Index;
  3. use App\Models\Blog\Article;
  4. use App\Models\Blog\ArticleTag;
  5. use App\Models\Blog\Category;
  6. use App\Models\Blog\Tag;
  7. use App\Models\Index\Information;
  8. use App\Models\Index\Link;
  9. use Illuminate\Http\Request;
  10. use App\Http\Controllers\Controller;
  11. use Illuminate\Support\Facades\Auth;
  12. class InfoController extends Controller
  13. {
  14. //
  15. public function edit(Request $request)
  16. {
  17. $information = Information::query()
  18. ->select('id', 'site_title', 'site_keywords', 'site_description', 'author_name', 'author_intro', 'author_avatar', 'navigation')
  19. ->first()->toArray();
  20. return view('admin.info.edit', ['information' => $information]);
  21. }
  22. public function update(Request $request)
  23. {
  24. $input = $request->input();
  25. $this->validate($request, [
  26. 'site_title' => 'required|max:30',
  27. 'site_keywords' => 'required|max:50',
  28. 'site_description' => 'required|max:150',
  29. 'author_name' => 'required|max:20',
  30. 'author_intro' => 'required|max:50',
  31. 'author_avatar' => 'required|max:255'
  32. ]);
  33. // $data = ['email' => $input['email'], 'name' => $input['name'],];
  34. // $information = Information::query()->find($input['id']);
  35. $information = Information::query()->first();
  36. $information->site_title = $input['site_title'];
  37. $information->site_keywords = $input['site_keywords'];
  38. $information->site_description = $input['site_description'];
  39. $information->author_name = $input['author_name'];
  40. $information->author_intro = $input['author_intro'];
  41. $information->author_avatar = $input['author_avatar'];
  42. $navigation = [];
  43. for ($i = 0; $i < 12; $i++) {
  44. if (!isset($input['navigation-title-'.strval($i)]) || !isset($input['navigation-url-'.strval($i)])) break;
  45. $title = $input['navigation-title-'.strval($i)];
  46. $url = $input['navigation-url-'.strval($i)];
  47. if ($title && $url) $navigation[] = ["title" => $title, "url" => $url];
  48. }
  49. $information->navigation = json_encode($navigation, JSON_UNESCAPED_UNICODE);
  50. $information->save();
  51. return view('admin.info.edit', ['information' => $information->toArray()])->with(['message' => 'success']);
  52. }
  53. }