Как я разрабатываю проект в Larawel 5.3. и я использую две таблицы в базе данных в первую очередь users
и второй points
Вы можете увидеть мою структуру очков в этой ссылке.
Я хочу получить идентификатор пользователя в контроллере laravel 5.3 с Auth :: user () ->идентификатор, но это создает ошибку их
Так что, когда происходит пересечение. он сохраняется в таблице баллов, ассоциируясь с 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
таблица для каждого пользователя. Пожалуйста, предоставьте мне некоторую помощь для решения этой проблемы.
Вы можете сделать публичную функцию и вызывать ее каждый цикл в цикле 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) }}
Других решений пока нет …