Array返回三维数组而不是两个。 PHP / Laravel

时间:2018-02-22 01:50:48

标签: php mysql arrays laravel

我正在使用的系统中遇到二维数组的问题, 所以这就是我的问题。 我正在使用 Laravel (如果有相关信息)并且我有一个名为的控制器 StationController 用于名为 Station 的模型。每个电台都有很多展位,每个展位都有很多人员。 我的问题是如何在不使用 JavaScript Ajax 的情况下将查询结果返回给视图。

这是视图的结构:

Station id: 1
 - Booth id: 1
   - Personnel id: 1
   - Personnel id: 2
   - Personnel id: 3
 - Booth id : 2
   - Personnel id: 4
   - Personnel id: 5
   - Personnel id: 6
Station id : 2
 ...

这是我在该控制器中的函数,但它返回的是三维数组而不是2。

public function show($id){
    $stations = stations::getstationWhere($id); // select current station
    $station = $stations[0]; // select fields of the current station.
    $services = stationsServices::getstationsServicesWhere($id); // services of the current station.
    $service_booth = ServiceBooths::getServiceBoothBystation($id);

    foreach($service_booth as $key => $value){
        $booth_personnel[$key][$value->name] = BoothPersonnel::getBoothPersonnel($value->id);
    }



    return $booth_personnel;
}

这是它返回的截图。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果模型上的关系设置正确,您可以这样做:

Station::with('booth.personnel')->where('id', $id);

现在的展位#39;和'人员'需要与模型上的关系方法同名。因此,它可能是Station::with('booths.personnel'),具体取决于您的命名约定。