phpmyadmin 无法在laravel中实现搜索功能

lvmkulzt  于 2024-01-09  发布在  PHP
关注(0)|答案(1)|浏览(321)

我有一个网上商店的应用程序,从主页上,你可以点击一个输入字段,按查找,它应该显示你的订单列表,有根据搜索查询。当我按查找它给我一个404没有找到错误。这里是主页查找

  1. <form action="{{ route('order.search') }}" method="GET">
  2. <input type="text" name="search" class="search-input" placeholder="Search Orders" required>
  3. <button type="submit" class="search-button">Find</button>
  4. </form>
  5. </div>

字符串
下面是orderController搜索函数

  1. public function search(Request $request)
  2. {
  3. // echo "Search method invoked";
  4. $searchQuery = $request->input('search');
  5. $orders = Order::where('name', 'like', '%' . $searchQuery . '%')->get();
  6. return view('order.search_results', compact('searchQuery', 'orders'));
  7. }


这里是web.php路由

  1. Route::get('/order/search', [OrderController::class, 'search'])->name('order.search');


这里是订单页面,你应该得到后,你搜索一个订单

  1. @extends('layouts.app')
  2. @section('content')
  3. <div class="container">
  4. <div class="row justify-content-center">
  5. <div class="col-md-8">
  6. <div class="card">
  7. <div class="card-header">Search Results for "{{ $searchQuery }}"</div>
  8. <div class="card-body">
  9. @if($orders->isEmpty())
  10. <p>No matching orders found.</p>
  11. @else
  12. <ul>
  13. @foreach($orders as $order)
  14. <li>{{ $order->id }}</li>
  15. <li>{{ $order->name }}</li>
  16. @endforeach
  17. </ul>
  18. @endif
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. @endsection


当我搜索一个Pizza时,它会把我带到一个URL/order/search?search=Pizza,也许路由有问题,但在orderController中,我相信函数会解决这个问题。

von4xj4u

von4xj4u1#

你的逻辑是错误的,你正在为一个GET请求做一个路由,但是你试图访问应该用POST完成的输入。Laravel正在将你的搜索输入作为一个url参数添加。
或者像这样更改为POST:

  1. Route::post('/order/search', [OrderController::class, 'search'])->name('order.search');

字符串
或将参数添加到路由中

  1. Route::get('/order/search/{query}', [OrderController::class, 'search'])->name('order.search');

相关问题