【问题标题】:Cannot fill a table with passed data无法用传递的数据填充表格
【发布时间】:2017-04-30 20:31:03
【问题描述】:

我有这样的路线:

Route::get('/userlist', function () {
    $users = User::where('owner_id',Auth::user()->owner_id)->orderBy('created_at','desc');
    return View::make('auth.forms.userlist')->with('user',$users);
});

这是应该填写的表格:

...{{$i = 1}}
@foreach($user as $users)
    <tr>
        <td>{{ $i }}</td>
        <td>{{$users->salutation}}</td>
        <td>{{$users->name}}</td>
        <td>{{$users->surname}}</td>
        <td>{{$users->email}}</td>
        @if($users->role=="owner")
            <td><input type="checkbox" name="role" checke="1" disabled></td>
        @elseif($users->role == "admin")
            <td><input type="checkbox" name="role" checked="1"></td>
        @else
            <td><input type="checkbox" name="role"></td>
        @endif
        @if($users->role=="owner")
            <td><input type="checkbox" name="release" checked="1" disabled></td>
        @elseif($users->active == true)
            <td><input type="checkbox" name="release" checked="1"></td>
        @else
            <td><input type="checkbox" name="release"></td>
        @endif
            <td><input type="checkbox"></td>
            </tr>
            {{$i++}}
        @endforeach...

表格加载,我没有收到错误。我只是得到一张空桌子。有任何想法吗?我做错了什么?

【问题讨论】:

  • 你试过dd($users)吗?我想知道你的User::where('owner_id',Auth::user()-&gt;owner_id) 是否真的获取数据..
  • 技术上你的代码是正确的,但是请修正你的代码,当你传递变量users时,你必须将变量命名为users,为什么你将它命名为user(单数)?然后在你的 foreach @foreach($users as $user)

标签: php laravel eloquent blade


【解决方案1】:

应该是@foreach($users as $user)

如果你得到空表,$users 集合是空的,因为这段代码没有找到任何用户,它返回查询生成器:

$users = User::where('owner_id',Auth::user()->owner_id)->orderBy('created_at','desc');

您需要使用以下方法之一来获取集合、对象或某个值:最后是-&gt;first()-&gt;get()-&gt;count()-&gt;paginate() 等。

您可以在控制器中使用dd($users); 子句或在视图中使用{{ dd($users) }} 检查结果。

【讨论】:

  • dang,没有看到 $users$user 交换了位置.. 虽然认为至少 php(具有正确的错误报告配置)如果尝试迭代不存在的引用会抛出一些错误..
  • 我的查询实际上是空的,但我在这里看不到任何错误。这就是我问这个问题的原因。修复了 $user 的问题,但仍然没有运气。
【解决方案2】:

你必须在最后使用函数 get() 来检索数据。

$users = User::where('owner_id',Auth::user()->owner_id)->orderBy('created_at','desc')->get();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2020-10-21
    • 2021-01-29
    相关资源
    最近更新 更多