I want to pass data from my controller to blade view. What am I missing?
Controller:
public function getRolesFront(){
$roles= Role::join(
'user_roles',
'roles.id',
'=',
'user_roles.role_id')
->join(
'users',
'user_roles.user_id',
'=',
'users.id')
->select(
'user_roles.id AS row_id',
'user_roles.user_id',
'roles.name AS name',
'roles.function AS function',
'users.name AS user_name',
'user_roles.role_id')
->orderBy('user_roles.user_id')
->get();
return view('users_view', compact($roles));
}
web.php
Route::get('/userslist','RoleController@getRolesFront');
blade
<tr>
@foreach($roles as $role)
{{$role->role_id}}
@endforeach
</tr>
the error is:
Undefined variable: roles (View: C:\\laragon\\www\\ProjectoFinal\\resources\\views\\users_view.blade.php)
When using compact, don't add the actual variable, but rather the string name of the variable that was defined previously in code.
So, not :
return view('users_view', compact($roles));
but rather:
return view('users_view', compact('roles'));
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.