InfoController.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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 < 9; $i++) {
  44. $title = $input['navigation-title-'.strval($i)];
  45. $url = $input['navigation-url-'.strval($i)];
  46. if ($title && $url) $navigation[] = ["title" => $title, "url" => $url];
  47. }
  48. $information->navigation = json_encode($navigation, JSON_UNESCAPED_UNICODE);
  49. $information->save();
  50. return view('admin.info.edit', ['information' => $information->toArray()])->with(['message' => 'success']);
  51. }
  52. }