【问题标题】:How do you display pivot table data in laravel?你如何在 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_namestation 相关吗?
  • 我有 2 个表站和城市,我在站中放置了与城市中的 city_id 相同的 station_city_id。

标签: database laravel view model controller


【解决方案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 }} 来显示城市名称
猜你喜欢
  • 2019-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
相关资源
最近更新 更多