【发布时间】:2017-12-25 05:18:29
【问题描述】:
我遇到了一个错误:Undefined variable: orbitdata。
我查看了一些答案,我知道当数据库中没有与控制器中的过滤器匹配的数据时会发生这种情况。如果有数据就没有问题。
我使用的控制器是这样的:
$satellite = DB::table('satellites')->where('norad_cat_id', $norad_cat_id)->get();
$data = DB::table('satellites')->where('norad_cat_id', $norad_cat_id)->get();
$orbitalelements = DB::table('tle')->where('norad_cat_id', $norad_cat_id)->get();
return view('pages/satellite', compact($data, 'data', $orbitalelements, 'orbitalelements'));
控制器背后的逻辑是通过 norad_cat_id 过滤数据库并返回具有相同 norad_cat_id 的行。
“tle”表可能没有过滤后的 norad_cat_id 的任何数据,因此 $orbitalelements 不返回任何数据。如果没有,我会收到此错误。
我的刀片文件包含 $orbitalelements 变量的这个 foreach 语句:
@foreach($orbitalelements as $orbitdata)
@endforeach
我尝试添加一个 isset 语句(没有用):
@if(isset($orbitalelements))
@foreach($orbitalelements as $orbitdata)
@endforeach
@endif
当数据库中没有要返回的数据时,如何做到这一点,以便我不会收到未定义变量错误?
编辑:这是我的完整刀片文件:
<div class="satellite-content">
<div class="main-satellite-data">
<ul>
@foreach($data as $satellite)
<span id="satellite-name">{{$satellite->satname}}</span>
<li><span id="intldes">INTLDES: </span>{{$satellite->intldes}}</li>
<li><span id="noradid">NORAD Cat ID: </span>{{$satellite->norad_cat_id}}</li>
<li><span>Object Type: </span>{{$satellite->object_type}}</li>
<li><span>Country: </span>{{$satellite->country}}</li>
<li><span>Launch Date: </span>{{$satellite->launch}}</li>
<li><span>Launch Site: </span>{{$satellite->site}}</li>
<ul>
<li id="list-name"><span>ORBITAL ELEMENTS</span></li>
<li><span id="inclination">Inclination: </span>{{$satellite->inclination}}</li>
<li><span id="period">Period: </span>{{$satellite->period}}</li>
<li><span id="apogee">Apogee: </span>{{$satellite->apogee}}</li>
<li><span id="perigee">Perigee: </span>{{$satellite->perigee}}</li>
<li><span id="decay">Decay: </span>{{$satellite->decay}}</li>
@endforeach
@forelse($orbitalelements as $orbitdata)
<li><span id="epoch">Epoch: </span>{{$orbitdata->epoch}}</li>
<li><span id="meanmotion">Mean Motion: </span>{{$orbitdata->mean_motion}}</li>
<li><span id="eccentricity">Eccentricity: </span>{{$orbitdata->eccentricity}}</li>
<li><span id="meananomaly">Mean Anomaly: </span>{{$orbitdata->mean_anomaly}}</li>
<li><span id="bstar">Bstar: </span>{{$orbitdata->bstar}}</li>
</ul>
@empty
<p>no data</p>
@endforelse
</ul>
<div class="map-tle-padding">
<div id="satellitemap"></div>
<div class="tle-data">
<ul>
<li id="list-name-tle"><span>TLE Data</span></li>
@forelse($orbitalelements as $orbitdata)
<li id="tle-data-main">{{$orbitdata->tle_line0}}</li>
<li id="tle-data-main">{{$orbitdata->tle_line1}}</li>
<li id="tle-data-main">{{$orbitdata->tle_line2}}</li>
@empty
<p>no data</p>
@endforelse
</ul>
</div>
</div>
</div>
</div>
结果: 无数据:http://i.imgur.com/LNQCDLD.png
【问题讨论】:
标签: php sql laravel laravel-5 foreach