我試圖在我的視圖中顯示一個表格,內容包含來自我的位置表(地址,城市等...)和資源表(名稱,描述)的信息,它們通過ID鏈接一個ResourceLocation表。這是我到目前爲止有:如何通過視圖中的表顯示hasMany()關係。
資源控制器
....
public function resource()
{
$resources = Resource::all();
return view('pages.resource', compact('resources'));
}
public function location()
{
$locations = Location::all
return view (compact('locations'));
}
public function resourcelocation()
{
$resourcelocations = ResourceLocation::all();
return view (compact ('resourcelocations'));
}
...
/**
* Class ResourceLocation
*/
class ResourceLocation extends Model
{
...
public function resource()
{
return $this->belongsTo('App\Models\Resource');
}
public function location()
{
return $this->belongsTo('App\Models\Location');
}
}
資源模型
/**
* Class Resource
*/
class Resource extends Model
{
...
/** A resource can have many locations */
public function location()
{
return $this->hasMany('App\Models\ResourceLocation');
}
}
/**
* Class Location
*/
class Location extends Model
{
...
public function resource()
{
return $this->hasMany('App\ResourceLocation');
}
}
<table>
<tr>
<th>Resource Name</th>
<th>Description</th>
<th>Address</th>
<th>City</th>
<th>Zip Code</th>
<th>County</th>
</tr>
@foreach ($resourcelocations as $resourcelocation)
<tr>
<td> {{ $resourcelocation->id }}</td>
<td>
@foreach ($resourcelocation->resources as $resource)
{{ $resource->Name }},
@endforeach
</td>
<td>
@foreach($resourcelocations->locations as $location)
{{ $location->City }}
@endforeach
</td>
</tr>
@endforeach
</table>
我只是想補充一兩欄,看看它是否是工作,但我一直在resourcelocations
得到一個不確定的變量,仍試圖總結我的周圍laravel頭的關係是如何工作的,所以也許我的邏輯搞砸了。任何幫助將是偉大的!
謝謝。
謝謝。我不知道你可以通過使用該語句來加入這兩個表,我正在考慮SQL連接語句。 **編輯**沒關係,命名空間不同於。進展,我看到表格,只是沒有數據。 – ph0bolus
'belongsToMany'函數爲ID添加了附加參數。如果你和Laravel期望的不同,它可能不會返回數據。你的'ResourceLocation'表中你的id的名字是什麼? – user3158900
對不起,我明白了。而不是'{{$ resource-> name}}'它是我的數據庫中的'Name',所以一切都只是空白。在我全部使用它們之後,數據顯示正確。再次感謝! – ph0bolus