PHP-Laravel5从3个SQL数据库表中获取html表中的数据,其中列数据作为标题
我对PHP非常陌生,所以请容忍我-这对你来说可能是完全显而易见的,但不幸的是,我正在拔出我的头发!。。。 关于信息,我正在使用Laravel 5 我想使用SQL数据库表(teams和user_profiles)中的数据在列中列出配置文件图像,后跟用户名(两者都存储在user_profiles表中),在标题下以相关团队名称命名(存储在teams表中) 我已经设法做到这一点,在我的“管理”控制器中为每个团队手动创建了一个变量,每个变量都包含一个查询,以根据teams表中的id号获取数据 my admincontroller.php中的变量示例PHP-Laravel5从3个SQL数据库表中获取html表中的数据,其中列数据作为标题,php,mysql,database,laravel,Php,Mysql,Database,Laravel,我对PHP非常陌生,所以请容忍我-这对你来说可能是完全显而易见的,但不幸的是,我正在拔出我的头发!。。。 关于信息,我正在使用Laravel 5 我想使用SQL数据库表(teams和user_profiles)中的数据在列中列出配置文件图像,后跟用户名(两者都存储在user_profiles表中),在标题下以相关团队名称命名(存储在teams表中) 我已经设法做到这一点,在我的“管理”控制器中为每个团队手动创建了一个变量,每个变量都包含一个查询,以根据teams表中的id号获取数据 my adm
$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中调用此命令(仅修剪为显示“team 1”)
我想要什么
|------------|---------------|------------|-------------|
|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"
}
]
}
如果您的所有团队都将拥有相同数量的用户,那么您可以将以下变量添加到控制器:
// 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
@foreach($rows作为$row)
@foreach($teams作为$team)
{{$team[$row]>profile_pic}}
{{$team[$row]->name}
@endforeach
@endforeach
希望这会给你一个想法,如何实现你正试图建立
我建议阅读。如果您的所有团队都将拥有相同数量的用户,那么您可以将以下变量添加到控制器中:
// 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
@foreach($rows作为$row)
@foreach($teams作为$team)
{{$team[$row]>profile_pic}}
{{$team[$row]->name}
@endforeach
@endforeach
希望这会给你一个想法,如何实现你正试图建立
我建议大家仔细阅读。你能在问题中添加
$team1
的dd()
或var\u dump()
。信息方面,这还包括第三个表“用户”中的数据,用于其他目的。您是否可以在问题中添加$team1
的dd()
或var\u dump()
。信息方面,这还包括第三个表“users”中的数据,用于其他目的。谢谢@Camilo,我会尝试一下。添加了一些注释,以防不清楚它是如何工作的。使用上述内容,我得到一个错误-此集合实例上不存在属性[count]:(尝试将count
替换为count()
。range()也会引发错误,要求至少提供2个参数,但仅提供1个。谢谢@Camilo,我会尝试一下。添加了一些注释,以防不清楚它是如何工作的。使用上述方法,我得到一个错误-此集合实例上不存在属性[count]:(尝试将count
替换为count()
。range()也会引发错误,要求至少提供2个参数,仅提供1个参数。