【发布时间】:2020-06-28 19:03:11
【问题描述】:
这里是 PHP/Laravel 的新手。
预期行为
我想使用表单操作通过插入 id 来从数据库中获取数据,例如快递员跟踪 id。直到现在它还在工作,但我只想在数据库中存在该 ID 时才显示结果
代码
控制器
public function search(Request $request)
{
$request->validate([
'query' => 'required|min:10|max:10',
]);
$query = $request->input('id');
$orders = Order::where('id','LIKE',"%$query%")->get();
$name = $request->input('id', '$id');
return view('order-details', compact('orders'));
order.blade
<form action="{{ route('order-details') }}" method="GET" class="order-form">
<div class="row">
<div class="col-lg-12">
<input type="text" placeholder="Track Order ID" name="query" id="query" value="{{ request()->input('query') }}">
</div>
<div class="col-lg-12">
<button type="submit">Submit Now</button>
</div>
</div>
</form>
@if(count($errors) > 0)
<ul>
@foreach ($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
</ul>
@endif
路线
Route::get('order', 'OrderController@index')->name('order');
Route::get('order-detail', 'OrderController@search')->name('order-details');
【问题讨论】:
-
不需要这个
$name = $request->input('id', '$id');删除这个 -
$orders = Order::where('id', $query)->get();试试这个。如果 id 不存在,那么您的查询将一无所获
标签: php mysql sql database laravel