【发布时间】:2023-04-04 08:50:02
【问题描述】:
当用户在页面刷新时按国家/地区搜索时,我想这样做。结果页面以将所选国家/地区保留在表单上的选项中。
这就是我填充下拉列表的地方
@foreach ($countries as $country)
<option value="{!! $country->id !!}">{!! $country->name !!}</option>
@endforeach
这是我尝试过的,但似乎不正确,因为未选择该值
@foreach ($countries as $country)
<option value="{!! $country->id !!}" @if( old('country->id') == $country->id) selected="selected" @endif>{!! $country->name !!}</option>
@endforeach
这里有什么诀窍?
这是控制器
public function search(Request $request)
{
$searchText = strip_tags($request['q']);
$seachLocation = strip_tags($request['l']);
$columns =['alias','description','address1','address2','address3'];
$query = Item::select('*');
$query->where( 'title', 'like', '%'.$searchText.'%');
foreach( $columns as $column) {
$query->orWhere( $column, 'like', '%'.$searchText.'%', '%'.$seachLocation.'%');
}
$query->orWhereHas('category',function( $query ) use ( $searchText ) {
$query->where('title', 'like', '%'.$searchText.'%' );
});
$query->orWhereHas('country',function( $query ) use ( $searchText ) {
$query->where('name', 'like', '%'.$searchText.'%' );
});
$items = $query->paginate(5);
$searchQuery = $searchText;
$searchQueryLoc = $seachLocation;
return view('search', compact('items','searchQuery','seachLocation'));
}
【问题讨论】:
-
你试过添加 getOldInput(); ?> 并检查值 country->id 是否可用?
-
不,我应该在哪里添加这个?
-
在您的视野中。添加 getOldInput()); ?> 并提交页面并发布结果。
-
它显示
array(0) { },顺便说一句,上面的代码我正在尝试(我的第二次狙击)它总是显示默认选择的数据库中具有最大 ID 的国家/地区。 -
提交表单后是array(0) {}吗?如果是这样,您是否使用旧输入重定向到视图?请添加您重定向的控制器部分
标签: php laravel laravel-5.2