Я играл с библиотекой Algolia autocomplete places.js. Когда вы используете библиотеку, вы получаете список предложений, например.
{
"query": "pari",
"suggestion": {
"name": "Paris",
"administrative": "Île-de-France",
"country": "France",
"countryCode": "fr",
"type": "city",
"latlng": {
"lat": 48.8546,
"lng": 2.34771
},
"postcode": "75000",
"highlight": {
"name": "<em>Pari</em>s",
"administrative": "Île-de-France",
"country": "France"
},
"value": "Paris, Île-de-France, France"
}
}
Мне нужно использовать php-клиент и вернуть список предложений для моих собственных приложений API, например.
$places = \AlgoliaSearch\Client::initPlaces();
$result = $places->search($term, [
'type' => ['city', 'country', 'address'],
'language' => 'en',
'aroundLatLngViaIP' => false,
]);
dd($result);
Однако, когда вы используете php-клиент (обратите внимание, что в этом случае я использую laravel scout), вы не получаете список предложений, т.е. нет свойства value
(полное отображаемое имя найденного места) в ответ, который вы можете вернуть вернуться к конечному пользователю - вместо этого вы получите следующий ответ?
{
"hits": [{
"objectID": "145746683_7444",
"locale_names": {
"default": ["Paris"],
},
"city": {
"default": ["Paris"],
},
"county": {
"default": ["Paris"],
},
"administrative": ["Île-de-France"],
"country": {
"default": "France",
},
"country_code": "fr",
"postcode": ["75000"],
"population": 2243833,
"_geoloc": {
"lat": 48.8564,
"lng": 2.3521
},
"_highlightResult": {
"locale_names": {
"default": [{
"value": "<em>Paris</em>",
"fullyHighlighted": true,
"matchedWords": ["paris"],
"matchLevel": "full"
}]
},
}
}],
"nbHits": 1,
"query": "Paris"
}