Php 从一对多(逆)关系laravel获取数据
我有两个模型“Trips.php”Php 从一对多(逆)关系laravel获取数据,php,laravel,laravel-5.3,blade,laravel-blade,Php,Laravel,Laravel 5.3,Blade,Laravel Blade,我有两个模型“Trips.php” public function region() { return $this->belongsTo('App\Region'); } Region.php public function trips() { return $this->hasMany('App\Trip'); } 我试图展示一个特定地区的旅行。例如:我有一个名为湖边的区域,我想在列表中显示湖边区域中的所有行程 我尝试了以下方法: 在控制器中: $trips
public function region()
{
return $this->belongsTo('App\Region');
}
Region.php
public function trips()
{
return $this->hasMany('App\Trip');
}
我试图展示一个特定地区的旅行。例如:我有一个名为湖边
的区域,我想在列表中显示湖边
区域中的所有行程
我尝试了以下方法:
在控制器中:
$trips = Trip::all();
鉴于:
@foreach($trips as $trip)
<li><a href="#">
{{$trip->region->name}}</a>
<ul class="dropdown">
<li><a href="#">
{{$trip->title}}</a>
</li>
</ul>
</li>
@endforeach
@foreach($trips作为$trip)
-
@endforeach
这会给我区域名称和行程名称,但如果在同一区域内进行了多个行程,则会重复区域名称
并尝试了另一种方法(相反):
@foreach($regions作为$region)
-
@endforeach
获取错误
尝试获取非对象的属性
通过获取带有区域的旅行,您实际上得到的是每个带有区域属性的旅行
相反,使用('trips')->where('id',$regionId)->get()可以得到带有trips的区域。所以现在每个区域结果都有一个trips属性,它包含许多trips
或者,不要使用急加载。所以Region::firstOrFail($regionId)
然后使用$Region->trips
你可以像这样循环
// Can print region here
@foreach($region->trips as $trip)
// Can print region's trips here
@endforeach
通过获取带有区域的旅行,您实际上得到的是带有区域属性的每次旅行 相反,使用('trips')->where('id',$regionId)->get()可以得到带有trips的区域。所以现在每个区域结果都有一个trips属性,它包含许多trips 或者,不要使用急加载。所以
Region::firstOrFail($regionId)
然后使用$Region->trips
你可以像这样循环
// Can print region here
@foreach($region->trips as $trip)
// Can print region's trips here
@endforeach
一种方法是使用: 将
$trips
和$regionName
传递到视图:
@foreach ($trips as $trip)
<li><a href="#">{{ $regionName }}</a>
<ul class="dropdown">
<li><a href="#">
{{ $trip->title }}</a>
</li>
</ul>
</li>
@endforeach
@foreach ($region->trips as $trip)
<li><a href="#">{{ $region->name }}</a>
<ul class="dropdown">
<li><a href="#">
{{ $trip->title }}</a>
</li>
</ul>
</li>
@endforeach
并且认为:
@foreach ($trips as $trip)
<li><a href="#">{{ $regionName }}</a>
<ul class="dropdown">
<li><a href="#">
{{ $trip->title }}</a>
</li>
</ul>
</li>
@endforeach
@foreach ($region->trips as $trip)
<li><a href="#">{{ $region->name }}</a>
<ul class="dropdown">
<li><a href="#">
{{ $trip->title }}</a>
</li>
</ul>
</li>
@endforeach
@foreach($region->trips as$trip)
-
@endforeach
一种方法是使用:
将$trips
和$regionName
传递到视图:
@foreach ($trips as $trip)
<li><a href="#">{{ $regionName }}</a>
<ul class="dropdown">
<li><a href="#">
{{ $trip->title }}</a>
</li>
</ul>
</li>
@endforeach
@foreach ($region->trips as $trip)
<li><a href="#">{{ $region->name }}</a>
<ul class="dropdown">
<li><a href="#">
{{ $trip->title }}</a>
</li>
</ul>
</li>
@endforeach
并且认为:
@foreach ($trips as $trip)
<li><a href="#">{{ $regionName }}</a>
<ul class="dropdown">
<li><a href="#">
{{ $trip->title }}</a>
</li>
</ul>
</li>
@endforeach
@foreach ($region->trips as $trip)
<li><a href="#">{{ $region->name }}</a>
<ul class="dropdown">
<li><a href="#">
{{ $trip->title }}</a>
</li>
</ul>
</li>
@endforeach
@foreach($region->trips as$trip)
-
@endforeach
是否可以在服务提供商中执行此操作??因为我正在尝试制作导航栏。是否可以在服务提供商中进行此操作??当我试图制作导航栏时。