У меня есть программный код laravel, который будет выполнять 2 данных. Если в данных по запросу есть «банджар», он покажет расстояние от центральной точки банджара до точки назначения. иначе он покажет расстояние от другой центральной точки до точки назначения.
Но у меня есть ошибка «Ошибка синтаксиса: непредвиденная», если «(T_IF)», когда я выполняю этот код.
, как
@php
//TASIK
$latitude1 = -7.325374900000001;
$longitude1 = 108.2251681;
//BANJAR
$latitude2 = -7.3708991;
$longitude2 = 108.5418788;
$latitudersk = $data->latitude;
$longitudersk = $data->longitude;
@if( {{ $rsk_tasik }} )
$dataJson = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=".$latitude1.",".$longitude1."&destinations=".$latitudersk.",".$longitudersk."&key=AIzaSyCyUBu8OPh0adMWbL9McFMMDqJA9UB7jes");
@elseif( {{ $rsk_banjar }} )
$dataJson = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=".$latitude2.",".$longitude2."&destinations=".$latitudersk.",".$longitudersk."&key=AIzaSyCyUBu8OPh0adMWbL9McFMMDqJA9UB7jes");
@endif
$json = json_decode($dataJson);
$distance = $json->rows[0]->elements[0]->distance->text;
@endphp
@foreach($rsk as $no => $data)
{{ $no +1 }}
{{ $data->address }}
{{ $data->latitude }}
{{ $data->longitude }}
{{ $distance }}
@endforeach
И в контроллере я использую такой запрос
$rsk = DB::select("SELECT * FROM gmaps_geocache WHERE address LIKE '%RSK%'");
$rsk_tasik = DB::select("SELECT * FROM gmaps_geocache WHERE address LIKE '%RSK%' AND address NOT LIKE '%banjar%'");
$rsk_banjar = DB::select("SELECT * FROM gmaps_geocache WHERE address LIKE '%RSK%' AND address LIKE '%banjar%'");
Не используйте {{ }}
в @php и @if
<tbody>
@php
//TASIK
$latitude1 = -7.325374900000001;
$longitude1 = 108.2251681;
//BANJAR
$latitude2 = -7.3708991;
$longitude2 = 108.5418788;
$latitudersk = $data->latitude;
$longitudersk = $data->longitude;
if($rsk_tasik) {
$dataJson = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=".$latitude1.",".$longitude1."&destinations=".$latitudersk.",".$longitudersk."&key=AIzaSyCyUBu8OPh0adMWbL9McFMMDqJA9UB7jes");
} elseif($rsk_banjar) {
$dataJson = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=".$latitude2.",".$longitude2."&destinations=".$latitudersk.",".$longitudersk."&key=AIzaSyCyUBu8OPh0adMWbL9McFMMDqJA9UB7jes");
}
$json = json_decode($dataJson);
$distance = $json->rows[0]->elements[0]->distance->text;
@endphp
@foreach($rsk as $no => $data)
<tr>
<td>{{ $no +1 }}</td>
<td>{{ $data->address }}</td>
<td>{{ $data->latitude }}</td>
<td>{{ $data->longitude }}</td>
<td>{{ $distance }}</td>
</tr>
@endforeach
</tbody>
Вы можете попробовать следующее:
@php
//TASIK
$latitude1 = -7.325374900000001;
$longitude1 = 108.2251681;
//BANJAR
$latitude2 = -7.3708991;
$longitude2 = 108.5418788;
$latitudersk = $data->latitude;
$longitudersk = $data->longitude;
if($rsk_tasik)
{
$dataJson = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=".$latitude1.",".$longitude1."&destinations=".$latitudersk.",".$longitudersk."&key=AIzaSyCyUBu8OPh0adMWbL9McFMMDqJA9UB7jes");
}
else
{
$dataJson = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=".$latitude2.",".$longitude2."&destinations=".$latitudersk.",".$longitudersk."&key=AIzaSyCyUBu8OPh0adMWbL9McFMMDqJA9UB7jes");
}
$json = json_decode($dataJson);
$distance = $json->rows[0]->elements[0]->distance->text;
@endphp