php - Laravel未定义变量中的ErrorException
问题描述
我是 Laravel 的新手,我现在正在使用关系,但我收到一个错误
ErrorException:未定义变量:用户(查看: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
作为
<?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
解决方案
您的代码的错误部分是compact($users)
It must be compact('users')
。固定代码是
public function index()
{
$users = \App\User::all();
return view('users.index', compact('users');
}
compact('users')等价于['users' => $users]
推荐阅读
- java - 在 JPQL 查询中设置可选参数
- ruby-on-rails - 无法启动我的 Rails 服务器 [linux]
- reactjs - 如何在 Rekit 功能之间共享状态?
- java - 当我将它写入文件时如何拆分我的arraylist
- scala - 在 spark Dataframe 中使用 arraytype
- python - 在不更改代码源的情况下重写 pywb 中的函数
- python - 尝试用创建的临时文件替换原始文件
- php - 如果 mcyrpt 不能在 php 7.2 中工作怎么办有什么解决方案或替代方法吗?
- amazon-web-services - 如何通过 java sdk 执行“cloudformation package”命令?
- javascript - vue js挂载firebase异步调用不更新数据