我有一个网上商店的应用程序,从主页上,你可以点击一个输入字段,按查找,它应该显示你的订单列表,有根据搜索查询。当我按查找它给我一个404没有找到错误。这里是主页查找
<form action="{{ route('order.search') }}" method="GET">
<input type="text" name="search" class="search-input" placeholder="Search Orders" required>
<button type="submit" class="search-button">Find</button>
</form>
</div>
字符串
下面是orderController搜索函数
public function search(Request $request)
{
// echo "Search method invoked";
$searchQuery = $request->input('search');
$orders = Order::where('name', 'like', '%' . $searchQuery . '%')->get();
return view('order.search_results', compact('searchQuery', 'orders'));
}
型
这里是web.php路由
Route::get('/order/search', [OrderController::class, 'search'])->name('order.search');
型
这里是订单页面,你应该得到后,你搜索一个订单
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Search Results for "{{ $searchQuery }}"</div>
<div class="card-body">
@if($orders->isEmpty())
<p>No matching orders found.</p>
@else
<ul>
@foreach($orders as $order)
<li>{{ $order->id }}</li>
<li>{{ $order->name }}</li>
@endforeach
</ul>
@endif
</div>
</div>
</div>
</div>
</div>
@endsection
型
当我搜索一个Pizza时,它会把我带到一个URL/order/search?search=Pizza,也许路由有问题,但在orderController中,我相信函数会解决这个问题。
1条答案
按热度按时间von4xj4u1#
你的逻辑是错误的,你正在为一个GET请求做一个路由,但是你试图访问应该用POST完成的输入。Laravel正在将你的搜索输入作为一个url参数添加。
或者像这样更改为POST:
字符串
或将参数添加到路由中
型