【问题标题】:Passing data from controller to blade view将数据从控制器传递到刀片视图
【发布时间】:2019-11-13 12:58:59
【问题描述】:

我想将数据从我的控制器传递到刀片视图。我错过了什么?

控制器:

    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');

刀片

<tr>
  @foreach($roles as $role)
  {{$role->role_id}}
  @endforeach
</tr>

错误是:

未定义变量:角色(查看:C:\laragon\www\ProjectoFinal\resources\views\users_view.blade.php)

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:

    使用紧凑型时,不要添加实际变量,而是添加之前在代码中定义的变量的字符串名称。

    所以,不是

    return view('users_view', compact($roles));
    

    而是:

    return view('users_view', compact('roles'));
    

    【讨论】:

    • 你知道如何从不同的控制器将另一个对象发送到同一个视图吗?
    • 当然,以同样的方式 - 在另一个控制器中创建一个方法,并在该方法中,将您喜欢的任何内容存储在同一个 $roles 变量中,并使用与上述完全相同的返回语句。
    猜你喜欢
    • 2017-09-03
    • 1970-01-01
    • 2019-04-13
    • 2019-12-19
    • 2016-06-25
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多