私は自分のビュー内に、自分のロケーションテーブル(Addr、Cityなど)の情報とリソーステーブル(Name、Descr)の情報で構成される内容を表示しようとしています。 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
に未定義の変数を取得しておくと関係がどのように働きますか多分私の論理は台無しです。どんな助けも素晴らしいだろう!
ありがとうございました。
ありがとうございました。私はあなたがそのステートメントを使用するだけで2つのテーブルに参加できるかどうか分からず、私はSQL結合ステートメントを考えていました。 **編集**気にしないで、名前空間は異なっていました。進歩、私はテーブルを参照して、ちょうどデータがありません。 – ph0bolus
'belongsToMany'関数は、IDのための追加パラメータをとります。 Laravelの予想と異なる場合は、データを返さない可能性があります。 'あなたの' ResourceLocation'テーブルにあなたのIDの名前は何ですか? – user3158900
申し訳ありませんが、私はそれを理解しました。 '{{$ resource-> name}}'の代わりに、それは私のデータベースの 'Name'だったので、すべてが空白になりました。私がそれらをすべて大文字にした後、データは正しく表示されました。再度、感謝します! – ph0bolus