簡體   English   中英

PHP-Laravel 5從3個SQL數據庫表以DATA列作為標題將數據獲取到html表

[英]PHP - Laravel 5 get data to html table from 3 SQL database tables with column DATA as headers

我對PHP還是很陌生,所以請多多包涵-這對您來說可能是完全顯而易見的,但不幸的是,我正在拔頭發!...有關信息,我正在使用Laravel 5。

我想使用SQL數據庫表(teams和user_profiles)中的數據在列中標有相關團隊名稱(存儲在teams表中)的標題下方列出配置文件圖像,然后列出用戶名(均存儲在user_profiles表中)。 。

我設法通過在“管理員”控制器中為每個團隊手動創建一個變量來做到這一點,每個變量都包含一個查詢,以根據teams表中的ID號獲取數據

我的admincontroller.php中的變量示例

$team1 = DB::table('user_profiles')
->join('users', 'users.id', '=', 'user_profiles.user_id')
->join('teams', 'teams.id', '=', 'user_profiles.teams_id')
->select('users.*', 'user_profiles.*', 'teams.*')
->where(['teams.id' => 1])
->get();

在admin.blade.php中調用它(修剪為僅顯示“團隊1”)

<div class="col-md-4 text-center">
    <h3>Team 1</h3>
</div>

<div class="panel-inner-container">
    <div class="col-md-4 panel-inner-left">

    @foreach ($team1 as $profile)
        <img src="{{ $profile->profile_pic }}" alt="Avatar" class="avatar center-block" />
        <div class="lead text-center">
            <p>{{ $profile->name }}</p>
        </div>
    @endforeach
</div>        

我考慮過使用html表,在其中使用了foreach來創建與teams表上的行一樣多的列,並使用team name填充每一列的表頭。 但是,我無法確定的是如何根據每個團隊的users_profiles數據填充每一列-目前,我知道這是行不通的-是每列中重復的個人資料圖片和用戶1的名稱。

假設user_profiles表有9行,並且每個用戶配置文件行都有id,name和team_id,而teams表有4行,每行分別包含team_id和team_name

我有的

|------------|---------------|------------|-------------|
|team 1      |   team 2      |   team 3   |   team 4    |
|------------|---------------|------------|-------------|
|user 1 img  |  user 1 img   | user 1 img | user 1 img  |
|User 1 name | user 1 name   | user 1 name| user 1 name |
|------------|---------------|------------|-------------|
|user 1 img  |  user 1 img   | user 1 img | user 1 img  |
|User 1 name | user 1 name   | user 1 name| user 1 name |
|------------|---------------|------------|-------------|

我想要的是

|------------|---------------|------------|-------------|
|team 1      |   team 2      |   team 3   |   team 4    |
|------------|---------------|------------|-------------|
|user 1 img  |  user 2 img   | user 3 img | user 4 img  |
|User 1 name | user 2 name   | user 3 name| user 4 name |
|------------|---------------|------------|-------------|
|user 5 img  |  user 6 img   | user 7 img | user 8 img  |
|User 5 name | user 6 name   | user 7 name| user 8 name |
|------------|---------------|------------|-------------|

請告訴我是否需要提供任何其他信息,任何想法,我們將不勝感激。

這是$team1轉儲$team1

Collection {#213 ▼
  #items: array:2 [▼
    0 => {#219 ▼
      +"id": 1
      +"name": "Tom"
      +"email": REMOVED
      +"password": REMOVED
      +"admin": 1
      +"remember_token": REMOVED
      +"created_at": "2017-10-19 18:07:00"
      +"updated_at": "2017-10-19 18:08:38"
      +"user_id": 1
      +"teams_id": 1
      +"profile_pic": "http://laravel.dev/uploads/dartboard.png"
      +"team_name": "Barkers"
      +"venue": "Barker Butts"
      +"venue_post_code": "CV5 9AR"
    }
    1 => {#216 ▼
      +"id": 1
      +"name": "John Smith"
      +"email": REMOVED
      +"password": REMOVED
      +"admin": 0
      +"remember_token": REMOVED
      +"created_at": "2017-10-19 18:07:00"
      +"updated_at": "2017-10-19 18:08:38"
      +"user_id": 3
      +"teams_id": 1
      +"profile_pic": "http://laravel.dev/uploads/dartboard.png"
      +"team_name": "Barkers"
      +"venue": "Barker Butts"
      +"venue_post_code": "CV5 9AR"
    }
  ]
}

如果您所有團隊的用戶人數都相同,則可以將此變量添加到控制器中:

// Group all of your teams in a single array
$teams = [
    $team1,
    $team2,
    $team3,
    $team4
];

// Create an array with a length equal
// to the number of necessary rows
$rows = range(0, $team1->count() - 1);

然后將它們傳遞給您的視圖:

return view('someview')->with([
    'teams' => $teams,
    'rows' => $rows
]);

最后像這樣使用它們:

@foreach ($rows as $row)
    <tr>
        @foreach ($teams as $team)
            <td>
                {{ $team[$row]->profile_pic }} <br>
                {{ $team[$row]->name }}
            </td>
        @endforeach
    </tr>
@endforeach

希望這應該給您一個想法,如何實現您要構建的東西。

我建議閱讀Laravel的藏品文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM