2 回答
TA贡献1852条经验 获得超1个赞
考虑到您有一组状态代码和状态名称:
$data = [
'AL' => 'Alabama',
'AK' => 'Alaska',
'AZ' => 'Arizona',
'CA' => 'California',
'CO' => 'Colorado'
];
用户输入
$query = 'ala';
所以用户搜索'ala'它应该得到两种状态。首先找到所有与搜索相关的状态码:
$result = array_filter($data, function ($item) use ($query) {
if (stripos($item, $query) !== false) {
return true;
}
return false;
});
$state_codes =array_keys($result);
$state_codes拥有与搜索相关的所有状态代码,现在您可以在查询中使用:
$profiles = Profile::where('full_name','LIKE','%'.$query.'%')
->orWhere('area_description','LIKE','%'.$query.'%')
->orWhereIn('state',$state_codes)
->paginate(10);
TA贡献1784条经验 获得超8个赞
如果需要,您可以将状态全名存储在应用程序配置中,例如,我将全名存储在state.php配置文件夹中,如下所示:
return [
'CA' => 'California,
]
然后我可以通过这样的键码搜索全名:
$stateFullname = config('state');
$stateFullname[$profile->state];
在这里阅读更多
- 2 回答
- 0 关注
- 92 浏览
添加回答
举报