WordIndexController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\WordIndex;
  4. use Illuminate\Http\Request;
  5. use App\Http\Resources\WordIndexResource;
  6. use Illuminate\Support\Facades\Cache;
  7. use Illuminate\Support\Facades\Log;
  8. use Illuminate\Support\Facades\DB;
  9. class WordIndexController extends Controller
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. *
  14. * @return \Illuminate\Http\Response
  15. */
  16. public function index(Request $request)
  17. {
  18. //
  19. switch ($request->get("view")) {
  20. case 'key':
  21. $key = $request->get("key");
  22. /*
  23. $result = Cache::remember("/word_index/{$key}",10,function() use($key){
  24. return WordIndex::where('word','like',$key."%")
  25. ->whereOr('word_en','like',$key."%")
  26. ->orderBy('word_en')
  27. ->take(10)->get();
  28. });
  29. $table = WordIndex::where('word',$key)
  30. ->whereOr('word_en',$key)
  31. ->orderBy('word_en')
  32. ->take(10);
  33. Log::info($table->toSql());
  34. $result = $table->get();
  35. */
  36. $result = DB::select("SELECT * from word_indices where word like ? or word_en like ? order by len, word_en limit 10",[$key."%",$key."%"]);
  37. return $this->ok(['rows'=>$result,'count'=>count($result)]);
  38. break;
  39. default:
  40. return $this->error('view error');
  41. break;
  42. }
  43. }
  44. /**
  45. * Store a newly created resource in storage.
  46. *
  47. * @param \Illuminate\Http\Request $request
  48. * @return \Illuminate\Http\Response
  49. */
  50. public function store(Request $request)
  51. {
  52. //
  53. }
  54. /**
  55. * Display the specified resource.
  56. *
  57. * @param \App\Models\WordIndex $wordIndex
  58. * @return \Illuminate\Http\Response
  59. */
  60. public function show(WordIndex $wordIndex)
  61. {
  62. //
  63. }
  64. /**
  65. * Update the specified resource in storage.
  66. *
  67. * @param \Illuminate\Http\Request $request
  68. * @param \App\Models\WordIndex $wordIndex
  69. * @return \Illuminate\Http\Response
  70. */
  71. public function update(Request $request, WordIndex $wordIndex)
  72. {
  73. //
  74. }
  75. /**
  76. * Remove the specified resource from storage.
  77. *
  78. * @param \App\Models\WordIndex $wordIndex
  79. * @return \Illuminate\Http\Response
  80. */
  81. public function destroy(WordIndex $wordIndex)
  82. {
  83. //
  84. }
  85. }