【问题标题】:Undefined variable: users (View: C:\xampp\htdocs\rentalmobil\resources\views\admin\user.blade.php)未定义变量:用户(查看:C:\xampp\htdocs\rentalmobil\resources\views\admin\user.blade.php)
【发布时间】:2025-12-22 22:40:11
【问题描述】:

已解决

我很困惑,我认为我已经用 laravel 编写了一个真正的代码。我在很多参考资料上看到了我知道如何阅读数据库。是的,我是新手,还在学习。这是我的代码

来自模型。 admin.php 是文件夹的名称:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Admin extends Model
{
    protected $table = "admin";
}

这是我的控制器。我的控制器名称是 UserController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Admin;

class UserController extends Controller
{
    public function users(){
        $users = Admin::all();
        return view('admin.user', ['admin' => $users]);
    }

}

这是我的观点,它位于 view/admin/ 命名为 user.blade.php:

@extends('admin.header')

@section('content')
<div class="col-md-12">
    <div class="card">
        <div class="header">
            <h4 class="title">Striped Table</h4>
            <p class="category">Here is a subtitle for this table</p>
        </div>
        <div class="content table-responsive table-full-width">
            <table class="table table-striped">
                <thead>
                    <th>ID</th>
                    <th>Name</th>
                    <th>Salary</th>
                    <th>Country</th>
                    <th>City</th>
                </thead>
                <tbody>
                    <tr>
                        <td>1</td>
                        <td>{{ $users->email }}</td>
                        <td>$36,738</td>
                        <td>Niger</td>
                        <td>Oud-Turnhout</td>
                    </tr>
                </tbody>
            </table>

        </div>
    </div>
</div>
@endsection

这是我的错误

我用这个http://localhost:8000/users从我的浏览器打电话

抱歉英语不好:(

【问题讨论】:

  • 尝试复制/粘贴错误文本,而不是屏幕截图。这将使其他人更容易搜索类似的问题,并在回答此问题时在必要时引用
  • 刀片的变量是 $admin 而不是 $users。也为 $admin 添加一个循环。

标签: php laravel variables laravel-5.2 undefined


【解决方案1】:
@foreach($admin as $users) 
<tbody>
                    <tr>
                        <td>1</td>
                        <td>{{ $users->email }}</td>
                        <td>$36,738</td>
                        <td>Niger</td>
                        <td>Oud-Turnhout</td>
                    </tr>
                </tbody>
@endforeach

如果你不需要每个

             <tbody>
                        <tr>
                            <td>1</td>
                            <td>{{ $admin[0]->email }}</td>
                            <td>$36,738</td>
                            <td>Niger</td>
                            <td>Oud-Turnhout</td>
                        </tr>
                    </tbody>

【讨论】:

    【解决方案2】:

    首先,该变量将在视图中称为admin,因为这是您在编写'admin' =&gt; $users 时传递它的方式。

    其次,这将是一个用户集合,所以$users-&gt;email 是行不通的。您需要通过每个用户@foreach

    【讨论】:

    • 第三,您的管理员应该通常只是普通的App\User 具有管理员标志或角色或其他东西的对象。不是一个完全独立的表格。
    【解决方案3】:

    请更新您的view/admin/user.blade.phpUserController 喜欢:

    用户控制器

    class UserController extends Controller
    {
        public function users(){
            $users = Admin::all();
            return view('admin.user', compact('users'));
        }
    
    }
    

    查看/admin/user.blade.php

    <tbody>
    
     @foreach($users as $user)
       <tr>
           <td>1</td>
           <td>{{ $user->email }}</td>
           <td>$36,738</td>
           <td>Niger</td>
           <td>Oud-Turnhout</td>
       </tr>                
    </tbody>
    

    【讨论】: