【问题标题】:ErrorException in Laravel Undefined variableLaravel未定义变量中的ErrorException
【发布时间】:2018-12-12 00:03:53
【问题描述】:

我是 Laravel 的新手,我现在正在使用关系,但是我收到一个错误,因为

ErrorException :Undefined variable: users (查看: D:\Softwares\WampServer\www\LaravelRelations\resources\views\users\index.blade.php)

控制器在 usersController.php

public function index()
{
    $users = \App\User::all();
    return view('users.index', compact($users));
}

路由定义在 web.php

Route::resource('users', 'usersController');

模型是 User.php Role.php as

<?php
//User.php
namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function role() {
        return $this->belongsTo('\App\Role');
    }
}


<?php
//Role.php
namespace App;

use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    public function user() {
        return $this->hasMany('\App\User');
    }
}

这是 index.blade.php 在用户文件夹中

<!DOCTYPE html>

<html>
    <head>
        <title></title>
    </head>
    <body>
        <ul>
            <?php
                foreach ($users as $user) {
                    echo "<li>" . $user->username . "is" . $user->role->role_name;
                }
            ?>
        </ul>
    </body>
</html>

错误在foreach ($users as $user) {这一行$users variable

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    代码的错误部分是compact($users),它必须是compact('users')。固定代码是

    public function index()
    {
        $users = \App\User::all();
        return view('users.index', compact('users');
    }
    

    compact('users') 等价于 ['users' => $users]

    【讨论】:

    • 是的!它就像一个魅力和输出来了,但角色没有出现用户名出现但角色没有出现你能看到错误吗?回声“
    • ”。 $用户->用户名。 “是” 。 $用户->角色->角色名称;在这一行
  • 你的角色表有role_name列,可以显示角色表结构吗??
  • 在刀片中 foreach ($users as $user) { dd($user->toArray());,并显示结果
  • 是的,我知道错误出现在列名中,只有名称而不是角色名称,现在我改变了它并工作了,谢谢兄弟!必须被接受,再次感谢!
  • return view('users.index', compact('users'); 有错字应该是 return view('users.index', compact('users'));
  • 【解决方案2】:

    试试这个

    public function index()
    {
        $users = \App\User::all();
        return view('users.index', ['users' => $users] );
    }
    

    【讨论】:

    • 错误出现在 compact($users) 中的 $ 符号我更正了,谢谢回复!
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签