我有一个使用DataList的输入,其中可以输入汽车部件类型的名称,也可以使用下拉列表.看起来像这样
<input value="{{ request()->input('part-type') }}" list="part-type-list"
name="part-type" class="form-select">
<datalist id="part-type-list">
@foreach($partTypes as $partType)
<option @if(request()->input('plaintext') == $partType->name) selected
@endif value="{{$partType->name }}">{{ $partType->name }}
</option>
@endforeach
</datalist>
这$partTypes
个来自查询CarPartType::all()
,它用于显示您可以根据其筛选汽车部件的值.
在我的控制器中,我正在try 查看是否有部件类型的过滤器,然后更改查询以过滤掉不匹配的查询.问题是,我在汽车零件表上没有汽车部件类型的名称,只有ID.下面是我试图通过关系查询它的一个例子,但它不起作用.
$parts = CarPart::query();
if($request->filled('part-type')) {
$parts = $parts->where('carPartType.name', 'like', "% $request->input('part-type')%");
return $parts->get();
}
我试图利用的这种关系
public function carPartType(): BelongsTo
{
return $this->belongsTo(CarPartType::class);
}