Нужна помощь в laravel 5.3 для извлечения данных в таблице в одном представлении из нескольких таблиц базы данных

Как я разрабатываю проект в 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 таблица для каждого пользователя. Пожалуйста, предоставьте мне некоторую помощь для решения этой проблемы.

1

Решение

Вы можете сделать публичную функцию и вызывать ее каждый цикл в цикле 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) }}

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector