Laravel: ошибка анализа: синтаксическая ошибка, неожиданный «if» (T_IF) в представлении

У меня есть программный код 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%'");

, как его решить, и просмотр выглядит так

-3
задан Muhammad Anwari 13 July 2018 в 10:09
поделиться

2 ответа

Не используйте {{ }} в @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>
2
ответ дан J. Doe 17 August 2018 в 13:11
поделиться
  • 1
    я все еще получил ошибку & quot; Ошибка анализа: синтаксическая ошибка, неожиданное "if" (T_IF) & quot; – Muhammad Anwari 13 July 2018 в 10:37
  • 2
    Ответ на обновление @MuhammadAnwari – J. Doe 13 July 2018 в 10:38
  • 3
    Ошибка ErrorException (E_ERROR): синтаксическая ошибка, неожиданный «endif» (T_ENDIF), ожидающий конец файла & quot; – Muhammad Anwari 13 July 2018 в 10:42
  • 4
    @MuhammadAnwari i test, это очень странно, ответ обновления – J. Doe 13 July 2018 в 10:49

Вы можете попробовать следующее:

@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
2
ответ дан Shreeraj 17 August 2018 в 13:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: