Dec 6, 2022
11
Level 1
Laravel : eloquent query
Hi. I'm trying to do an eloquent query, where i have a member table, and a booking table. my goal is to get the member info and the total paid on the booking table. So i did this The MemberController :
public function index(){
$members = DB::table('bravo_members')
->join('bravo_bookings', 'bravo_members.user_id', '=', 'bravo_bookings.customer_id')
->orderBy('bravo_members.member_code')
->sum('bravo_bookings.paid');
return view('Member/member_home',['members'=>$members, 'layout'=>'index']);
}
But when i go to the member_home page i got error Invalid argument supplied for foreach()
But when i try to add the get() like this :
public function index(){
$members = DB::table('bravo_members')
->join('bravo_bookings', 'bravo_members.user_id', '=', 'bravo_bookings.customer_id')
->orderBy('bravo_members.member_code')
->sum('bravo_bookings.paid')
->get();
return view('Member/member_home',['members'=>$members, 'layout'=>'index']);
}
I got this error : call to a member function get() on string
How can i resolve it??
The MemberController :
public function index(){
$members = DB::table('bravo_members')
->join('bravo_bookings', 'bravo_members.user_id', '=', 'bravo_bookings.customer_id')
->orderBy('bravo_members.member_code')
->sum('bravo_bookings.paid');
return view('Member/member_home',['members'=>$members, 'layout'=>'index']);
}
The Member Model :
class Member extends Model
{
use HasFactory;
protected $table = 'bravo_members';
protected $fillable = [
'user_id',
'member_code',
'name',
'email'
];
public function user(){
return $this->belongsTo('App\User', 'user_id', 'id');
}
}
The blade file :
<tbody>
@foreach ($members as $mem)
<tr>
<td>{{$mem->name}}</td>
<td>{{$mem->email}}</td>
<td>{{$mem->member_code}}</td>
<td>{{$mem->member_role}}</td>
<td><a href="{{route('memCertif', $mem->user_id)}}" class="card-link text-white">
<button type="button" class="btn btn-primary">View Certif</button>
</a></td>
<td><a href="{{route('memberPfl', $mem->user_id)}}" class="card-link text-white">
<button type="button" class="btn btn-primary">View Profile</button>
</a></td>
<td><a href="{{route('memHistoryCust', $mem->user_id)}}" class="card-link text-white">
<button type="button" class="btn btn-primary">View History</button>
</a></td>
</tr>
@endforeach
</tbody>
Please or to participate in this conversation.