因为我正在开发一个废弃物5.3的项目。我在数据库中使用两个表users
和第二个points
你可以在这个链接中看到我的点表结构。
I want to get user id in laravel 5.3 controller with Auth::user()->id but it creates error their
所以当横断发生时。它被保存在与user_id
相关的点表中,因此可以将用户的净点视为使用下面的查询
$points = Points::select(DB::raw("sum(p_add)-sum(p_less) as Total"))->where('user_id', Auth::user()->id)->first();
现在我要在一个管理页面中获取用户的所有数据。所以我在控制器中使用以下代码
public function users_list()
{
$ptitle = "Website Users";
$pdesc = "";
$total_users = User::count();
$users = User::select('*')->orderby('created_at', 'desc')->get();
return view('admin.all-users-list',
['ptitle' => $ptitle,
'pdesc' => $pdesc,
'users' => $users,
'total_users' => $total_users,
]);
}
下面的foreach循环在视图页面中获取用户数据
<table class="table table-hover">
<tbody><tr>
<th>ID</th>
<th>User Name</th>
<th>Email</th>
<th>Country</th>
<th>Date</th>
<th>Points</th>
</tr>
<?php foreach ( $users as $u ){ ?>
<tr>
<td>{{ $u->id }}</td>
<td>{{ $u->user_name }}</td>
<td>{{ $u->email }}</td>
<td>{{ $u->country }}</td>
<td>{{ $u->created_at }}</td>
<td>????</td>
</tr>
<?php }?>
</tbody></table>
中的结果相同
现在我不知道如何为每个用户从points
表中获取网点。请帮我解决这个问题。
答案 0 :(得分:0)
你可以创建公共函数并在foreach循环中的每个循环中调用它。或者在Points模型类上创建静态函数,以使用user_id作为参数为每个用户获取点。
将getUserPoints
放在Points
模型类
public static function getUserPoints($userId){
$points = self::select(DB::raw("sum(p_add)-sum(p_less) as Total"))
->where('user_id', $userId)->first();
if( $points != null ){
return $points->Total;
}
return 0;
}
}
你可以在每个循环中将其称为{{ \App\Points::getUserPoints($u->id) }}