你如何在 laravel 中显示数据透视表数据?
Posted
技术标签:
【中文标题】你如何在 laravel 中显示数据透视表数据?【英文标题】:How do you display pivot table data in laravel? 【发布时间】:2020-10-25 15:36:23 【问题描述】:我在一个城市有多个站点,我想使用station_city_id
在第二张表中显示city_name
<tbody>
@foreach ($station as $stations )
<tr>
<th scope="row"> $stations->station_name </th>
这是我想要来自不同数据库的城市名称,我不想硬编码它
$city_name
</td>
<td> $stations->station_phone_1 </td>
<td> $stations->station_phone_2 </td>
</tr>
@endforeach
</tbody
【问题讨论】:
您的意思是不同的table
还是database
? & city_name
与 station
相关吗?
我有 2 个表站和城市,我在站中放置了与城市中的 city_id 相同的 station_city_id。
【参考方案1】:
查看Eloquent: Relationships
具有各自id的数据库方案表:
城市 车站 city_station定义每个模型中的关系
Cities.php 模型
public function stations()
return $this->belongsToMany('App\Stations');
Stations.php 模型
public function city()
return $this->belongsTo('App\Cities');
控制器
//$id = City id
public function view_cities_stations($id)
$city = Cities::find($id);
return view('view', compact('city'));
刀片视图
@foreach($city->stations as $station)
$station->name
@endforeach
【讨论】:
感谢您的回答,我仍然不明白这在控制器部分是如何工作的。如何在函数中获取城市 ID?我的模型叫做 City.php ,表名是城市,我需要的列名是 city_name。 在您的路线 web.php 中,您是否有使用 CitiesController 的 /cities/id 路线?在控制台中输入 php artisan route:list 并将该输出添加到您的问题中。 我没有那条路线,我想显示所有车站以及车站所在的城市。控制器中的路由名称/位置,我想用它来显示其中的所有内容,这可能吗? 创建路由:route::get('/locations/id', 'LocationController@show'); 谢谢你,你帮助我开始使用关系,我找到了一个没有新路线的不同解决方案。我可以通过使用 $stations->city->city_name 来显示城市名称以上是关于你如何在 laravel 中显示数据透视表数据?的主要内容,如果未能解决你的问题,请参考以下文章