Мне удалось сделать это так, что у меня есть все расстояния в таблице массив, но когда я пытаюсь просто добавить их в место проведения, он просто берет последний в списке. Если я оберну вокруг них foreach, он покажет все расстояния для каждого места.
Мой код контроллера
Код: Выделить всё
public function venues(Request $request)
{
$types = DB::table('types')
->join('venues', 'venues.type_id', '=', 'types.id')
->join('icons', 'types.icon_id', '=', 'icons.id')
->where('venues.is_approved', '=', 1)
->select('types.*', 'icons.*')
->groupBy('types.id')
->get();
$type = $request->query('type');
if ($type) {
$venues = Venue::whereHas('type', function (Builder $query) use ($type) {
$query->whereIn('name', $type);
})->where('is_approved', '=', 1)->get();
} else {
$venues = Venue::where('is_approved', '=', '1')->get();
}
if (auth()->user()->address) {
foreach ($venues as $venue) {
$earthRadius = '3959';
$latFrom = deg2rad(auth()->user()->address->address_latitude);
$lonFrom = deg2rad(auth()->user()->address->address_longitude);
$latTo = deg2rad($venue->address->address_latitude);
$lonTo = deg2rad($venue->address->address_longitude);
$latDelta = $latTo - $latFrom;
$lonDelta = $lonTo - $lonFrom;
$angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) +
cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
$distance[] = $angle * $earthRadius;
}
} else {
$distance = '';
}
return view('venue.venues', compact('venues', 'types', 'distance'));
}
Код: Выделить всё
@foreach ($venues as $venue)
[url={{ url(]id .'/'. str_replace(' ', '-', $venue->name)) }}">
@if (!$venue->photos->count() == 0)
@foreach ($venue->photos->take(1) as $photo)
@endforeach
@else
@endif
@if ($venue->type->icon_id)
[img]{{ asset($venue-[/img]
type->icon->icon_url) }}">
@endif
{{$venue->type->name}}
{{$venue->name}}
{{$venue->description}}
@if (!$distance == '')
{{round($distance, 0)}} miles from your address
@endif
@auth
id }}
:favorited={{ $venue->favorited() ? 'true' : 'false' }}
>
@endauth
[/url]
@endforeach
Подробнее здесь: https://stackoverflow.com/questions/638 ... ach-result
Мобильная версия