简体   繁体   中英

Passing data from controller to blade view

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM