【问题标题】:Undefined property: stdClass - LARAVEL未定义的属性:stdClass - LARAVEL
【发布时间】:2019-06-13 04:01:26
【问题描述】:

我正在尝试创建一个管理页面,店主可以在其中查看在网站上唱歌的用户的信息,但我总是收到 Undefined property: stdClass::$name 错误

这是控制器功能:

public function listar(){
    $users = DB::table('users')->select('name')->orderBy('updated_at', 'desc')->get();
    $users = DB::table('users')->select('email')->orderBy('updated_at', 'desc')->get();
    $users = DB::table('users')->select('phone')->orderBy('updated_at', 'desc')->get(); 
}

这是表格的一部分:

@foreach ($users as $u)
    <tr>
        <td>{{ $u->name }}</td>
        <td>{{ $u->email }}</td>
        <td>{{ $u->phone}}</td>
    </tr>
@endforeach

我只是希望它能够显示来自数据库的信息。

【问题讨论】:

  • 我忘记取消紧凑部分但我做到了 - return view('admin.usuarios.index', compact('listar', 'users')); }
  • 如果您忘记了,您可以编辑您的问题以添加内容。标签下方有一个编辑链接。 :-)

标签: php html database laravel eloquent


【解决方案1】:

您实际上是在三个不同的时间运行查询,每次都覆盖$users 变量。你最终得到了最后一个,它没有name 属性,因为你只选择了phone。您应该只运行一次并在 select() 中指定您想要的所有列。

public function listar(){
    $users = DB::table('users')->select('name', 'email', 'phone')
                 ->orderBy('updated_at', 'desc')->get();
}

【讨论】:

  • 我可以从两个不同的表中获取信息并将其放在同一个变量中,例如 $users 吗?
  • 你可以。有多种方法可以做到这一点,具体取决于你用它做什么。连接可能是合适的,但实际上取决于另一个表是什么、它与第一个表的关系以及您需要如何使用它
【解决方案2】:
public function listar(){
   $users = //Your user model class ::all();
   return $users;
}

然后尝试查看

@foreach ($users as $u)
<tr>
    <td>{{ $u->name }}</td>
    <td>{{ $u->email }}</td>
    <td>{{ $u->phone}}</td>
</tr>

@endforeach

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多