やりたいこと
・ユーザーごとにchecklist==1の場合とchacklist==0の場合をそれぞれ出力したい
名前 | 研修済 | 研修未完 |
---|---|---|
user1 | 3 | 2 |
user2 | 1 | 0 |
user3 | 1 | 2 |
現状
・ユーザの名前は出力できているけど、「研修済」「研修未完」がuser1の情報がuser2,user3にも反映されている
名前 | 研修済 | 研修未完 |
---|---|---|
user1 | 3 | 2 |
user2 | 3 | 2 |
user3 | 3 | 2 |
質問
※foreachで繰り返す中でuserテーブルの['id']とmemosテーブルの['user_id']が一致したうえでchecklist==1 or 0をカウントする処理??
処理の方法を探してもなかなか記事も見つからないのでterataillで質問をさせていただきました
コード
AuthController.php
php
1 2 public function userlist(){ 3 $user = \Auth::user(); 4 $userlist = User::paginate(10); 5 $memolists = Memo::where('checklist','1')->where('status','1')->get(); 6 $memoyet = Memo::where('checklist','0')->where('status','1')->get(); 7 //論理削除 status==2は削除扱い 8 return view('userlist',compact('user','userlist','memolists','memoyet')); 9 } 10 11
userlsit.blade.php
php
1@extends('layouts.app') 2 3@section('content') 4<div class="container"> 5 <div class="row justify-content-center"> 6 <div class="col-md-8"> 7 <div class="card"> 8 <table class="table"> 9 10 <h1>ユーザ一覧</h1> 11 <thead class = "table-dark"> 12 <tr> 13 <th scope="col">ユーザー名前</th> 14 <th scope="col">研修済</th> 15 <th scope="col">研修未完</th> 16 </tr> 17 </thead> 18 <tbody> 19 @foreach($userlist as $list) 20 <tr> 21 <td> 22 <a href = "/userdetail/{{ $list['id'] }}" class="name" > 23 {{ $list['name'] }} 24 </a> 25 </td> 26 27 <th scope="row"> 28 29 <?php $i=0; ?> 30 @foreach($memolists as $memolist) 31 <?php $i++; ?> 32 @endforeach 33 <?php echo $i; ?> 34 </th> 35 36 <th scope="row"> 37 <?php $i=0; ?> 38 @foreach($memoyet as $yet) 39 <?php $i++; ?> 40 @endforeach 41 <?php echo $i; ?> 42 43 </th> 44 45 46 </tr> 47 @endforeach 48 49 </tbody> 50 51 </table> 52 53 </div> 54 </div> 55</div> 56@endsection 57 58
テーブル定義情報
usersテーブル
id | name |
---|---|
1 | test1 |
2 | test2 |
2 | test3 |
memosテーブル
id | user_id | status | checklist |
---|---|---|---|
1 | 1 | 1 | 0 |
2 | 1 | 1 | 0 |
3 | 1 | 1 | 1 |
4 | 1 | 1 | 1 |
5 | 1 | 1 | 1 |
6 | 2 | 1 | 1 |
7 | 3 | 1 | 1 |
8 | 3 | 1 | 0 |
9 | 3 | 1 | 0 |
回答2件
あなたの回答
tips
プレビュー