php - Laravel:解析错误:语法错误,视图中出现意外的“if”(T_IF)
问题描述
我有一个 laravel 程序代码,它将执行 2 个数据。如果查询的数据上有一个“banjar”,它将显示从banjar中心点到目的地点的距离。否则它将显示从其他中心点到目标点的距离。
但是当我执行此代码时出现错误“解析错误:语法错误,意外'if'(T_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");
@endif
$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>
在控制器中我使用这样的查询
$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>
推荐阅读
- javascript - 将数据传递给与任何组件无关的纯 HTML 模板文件
- ansible - 无法使用 ansible-playbook 更新 xml 元素值
- javascript - 当传递返回 es6 字符串的函数时,Angular - ngStyle 返回 [object Object]
- ios - NSUserDefault Value 发现 nil 并杀死应用程序
- r - 通过相当讨厌的大型空间多边形数据框裁剪表面多边形
- java - 使用 Google SafetyNet 检查设备根状态
- c++ - bash:./main:无法执行二进制文件:执行格式错误
- java - Blackboard 服务器 - 重启问题
- php - php 为 echo 分配大量内存
- trusted-web-activity - Trusted Web Activity 在不同应用之间切换后显示地址栏