gpt4 book ai didi

PHP - Laravel 5 从 3 个以 DATA 列为标题的 SQL 数据库表中获取数据到 html 表

转载 作者:行者123 更新时间:2023-11-30 21:51:59 24 4
gpt4 key购买 nike

我是 PHP 的新手,所以请多多包涵 - 这对您来说可能是显而易见的,但不幸的是我正在拔头发!...有关信息,我正在使用 Laravel 5。

我想使用 SQL 数据库表(teams 和 user_profiles)中的数据在列中列出个人资料图像,后跟用户名(均存储在 user_profiles 表中),标题下方以相关团队名称(存储在团队表)。

我已经通过在我的“管理” Controller 中为每个团队手动创建一个变量来做到这一点,每个变量都包含一个查询以根据团队表中的 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 创建与团队表中的行一样多的列,并使用团队名称填充每列的表头。但是,我无法弄清楚的是如何根据每个团队使用 users_profiles 数据填充每一列 - 我目前拥有的 - 我知道这是行不通的 - 是每列中重复的个人资料图片和用户 1 的名称.

假设 user_profiles 表有 9 行,每个用户配置文件行有 id、name 和 teams_id和teams 表有 4 行,每行有 teams_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 的示例转储:

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"
}
]
}

最佳答案

如果您的所有团队都将拥有相同数量的用户,那么您可以将此变量添加到您的 Controller :

// 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);

然后将它们传递给您的 View :

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's collections documentation阅读。

关于PHP - Laravel 5 从 3 个以 DATA 列为标题的 SQL 数据库表中获取数据到 html 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46840268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com