WordIndexController.php 2.5 KB

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