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);

你有州代码和名称数组吗?你有州代码和名称数组吗?