Php 如何根据用户搜索状态';当I';我只存储州代码?
我有以下雄辩的问题Php 如何根据用户搜索状态';当I';我只存储州代码?,php,laravel,eloquent,Php,Laravel,Eloquent,我有以下雄辩的问题 $profiles = Profile::where('full_name','LIKE','%'.$query.'%')->orWhere('area_description','LIKE','%'.$query.'%')->orWhere('state','LIKE','%'.$query.'%')->paginate(10); 如果您提供CA、OH、NJ等信息,则可以根据州代码进行搜索 但是它需要知道这个查询需要能够接收完整的州名作为输入,比如加利福
$profiles = Profile::where('full_name','LIKE','%'.$query.'%')->orWhere('area_description','LIKE','%'.$query.'%')->orWhere('state','LIKE','%'.$query.'%')->paginate(10);
如果您提供CA、OH、NJ等信息,则可以根据州代码进行搜索
但是它需要知道这个查询需要能够接收完整的州名作为输入,比如加利福尼亚州、俄亥俄州、新泽西州等等
但是,我没有在数据库中存储州全名。有没有办法在应用程序中硬编码人行横道表?我真的不希望在项目中的这一点上进行数据库结构更改。如果需要,可以将状态全名存储在应用程序配置中,例如,我将全名存储在config文件夹中的
state.php
,如下所示:
return [
'CA' => 'California,
]
$stateFullname = config('state');
$stateFullname[$profile->state];
然后我可以按如下键代码搜索全名:
return [
'CA' => 'California,
]
$stateFullname = config('state');
$stateFullname[$profile->state];
阅读更多信息,请访问如果需要,您可以将状态全名存储在应用程序配置中,例如,我将全名存储在config文件夹的
state.php
中,如下所示:
return [
'CA' => 'California,
]
$stateFullname = config('state');
$stateFullname[$profile->state];
然后我可以按如下键代码搜索全名:
return [
'CA' => 'California,
]
$stateFullname = config('state');
$stateFullname[$profile->state];
考虑到您有一个州代码和州名称数组,请在上阅读更多内容:
$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\u code
具有与搜索相关的所有状态代码,现在您可以在查询中使用:
$profiles = Profile::where('full_name','LIKE','%'.$query.'%')
->orWhere('area_description','LIKE','%'.$query.'%')
->orWhereIn('state',$state_codes)
->paginate(10);
考虑到您有一个州代码和州名称数组:
$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\u code
具有与搜索相关的所有状态代码,现在您可以在查询中使用:
$profiles = Profile::where('full_name','LIKE','%'.$query.'%')
->orWhere('area_description','LIKE','%'.$query.'%')
->orWhereIn('state',$state_codes)
->paginate(10);
你有州代码和名称数组吗?你有州代码和名称数组吗?