I'm trying to create a view for displaying a list of users in the system with their roles in a table but I'm only getting one user returned despite having one super admin and several admins
Here is the code I'm using
$data = User::join('model_has_roles','model_has_roles.model_id','users.id')
->join('roles','model_has_roles.role_id','roles.id')
->join('user_profiles','user_profiles.user_id','users.id')
->select('users.id', 'title', DB::raw("CONCAT(user_profiles.fname,
' ', user_profiles.mname,' ', user_profiles.sname) As name"), 'email',
'gender', 'roles.name As role')
->where('roles.id',8)->orWhere('roles.id',9)
->get();`
this is what I'm getting in the table
I suspect that the first join is causing the issue but am unsure. Since I'm using server-side data tables, I also tried doing this:
...,
{
data: "id",
render:function(data){
return(
user(data).getRoleNames()
);
},
name: "role"
}, ...
But this give s me the following error in console
admins:529 Uncaught ReferenceError: user is not defined
at render (admins:529:25)
at jquery.dataTables.min.js:115:15
at Ga.b.fnGetData (jquery.dataTables.min.js:28:234)
at T (jquery.dataTables.min.js:33:248)
at ab (jquery.dataTables.min.js:38:118)
at ia (jquery.dataTables.min.js:32:467)
at Qb (jquery.dataTables.min.js:53:234)
at jquery.dataTables.min.js:50:337
at Object.g [as success] (jquery.dataTables.min.js:49:73)
at c (jquery.min.js:2:28327)
Any idea on how I can achieve this using custom code on the user's model or spartie functions?