2
0

WordIndexController.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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','like',$key."%")
  30. ->whereOr('word_en','like',$key."%")
  31. ->orderBy('len')
  32. ->orderBy('word_en')
  33. ->take(10);
  34. Log::info($table->toSql());
  35. $result = $table->get();
  36. */
  37. $result = DB::select("SELECT * from word_indices where word like ? or word_en like ? order by len, word_en limit 10",[$key."%",$key."%"]);
  38. return $this->ok(['rows'=>$result,'count'=>count($result)]);
  39. break;
  40. default:
  41. return $this->error('view error');
  42. break;
  43. }
  44. }
  45. /**
  46. * Store a newly created resource in storage.
  47. *
  48. * @param \Illuminate\Http\Request $request
  49. * @return \Illuminate\Http\Response
  50. */
  51. public function store(Request $request)
  52. {
  53. //
  54. }
  55. /**
  56. * Display the specified resource.
  57. *
  58. * @param \App\Models\WordIndex $wordIndex
  59. * @return \Illuminate\Http\Response
  60. */
  61. public function show(WordIndex $wordIndex)
  62. {
  63. //
  64. }
  65. /**
  66. * Update the specified resource in storage.
  67. *
  68. * @param \Illuminate\Http\Request $request
  69. * @param \App\Models\WordIndex $wordIndex
  70. * @return \Illuminate\Http\Response
  71. */
  72. public function update(Request $request, WordIndex $wordIndex)
  73. {
  74. //
  75. }
  76. /**
  77. * Remove the specified resource from storage.
  78. *
  79. * @param \App\Models\WordIndex $wordIndex
  80. * @return \Illuminate\Http\Response
  81. */
  82. public function destroy(WordIndex $wordIndex)
  83. {
  84. //
  85. }
  86. }