我正在从具有两个表的数据库中查询数据。
一个负载可能有多个停靠点,但一个停靠点有一个负载。负载至少有两个停止点,即起点和终点。
我将模型创建为
class LoadsModel extends Model
{
protected $table = 'loads';
public function stops(){
return $this->hasMany('App\Stops');
}
}
和
class Stops extends Model
{
protected $table = 'stops';
public function loads(){
return $this->belongsTo('App\LoadsModel');
}
}
我正在使用模型将模型传递到视图中。
public function index()
{
$loads = LoadsModel::orderBy('loadId')->get();
return view('tender.available')->with(['loads'=>$loads]);
}
我想根据表标题在刀片中显示结果,其中“原点城市”是停靠点的原点城市,其ID与加载表中的originstopId相同,而停靠点的目标城市则用其id为“加载表中的destStopId。我想显示负载的停止次数。像这样的东西。
<table class="table">
<tr>
<th>Origin City</th>
<th>Origin State</th>
<th>Destination City</th>
<th>Destination State</th>
<th>Load Id</th>
<th>Stops</th>
</tr>
</table>
答案 0 :(得分:0)
您应该使用foreach循环从每个负载访问每个属性:
@foreach($loads as $load)
<tr>
<th>{{$load->id}}</th>
.
.
.
<th>{{$load->anyAttributeYouWant}}</th>
@foreach($load->stops as $stop)
<th>{{$stop->id}}</th>
<th>{{$stop->city}}</th>
<th>{{$stop->state}}</th>
@endforeach
</tr>
@endforeach
我也已经在您的停靠站关系中提出了建议,因此您可以显示停靠站的所有属性。
您可以使用withCount
method计算出货物的停靠点:
public function index()
{
$loads = LoadsModel::orderBy('loadId')->withCount('stops')->get();
return view('tender.available')->with(['loads'=>$loads]);
}
您可以这样在视图中访问计数:
{{$load->stops_count}}