此集合实例上不存在Property [name]。雄辩的Laravel

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (18)

对于Eloquent,我有一个潜在的基本问题。我想只显示与该用户的角色对应的名称。我使用了许多人的Eloquent Relationship。但我无法让它发挥作用。

我尝试使用$users参数指向名称,但这不起作用。

我的项目有三个文件,如Role model,StudentControllerfind_username视图

谢谢。

角色模型

class Role extends Model
{
    protected $fillable = ['id','role_name','role_level','role_note'];

    public function users()
    {
        return $this->belongsToMany('App\User', 'role_users', 'user_id', 'role_id');
    }

}

我的学生控制器

class StudentController extends Controller
{
    public function find_username()
    {
        $roles = Role::all();

        foreach($roles as $role)
        {
            echo $role->users . '<br>';
        }
        return view('find_username',['roles'=> $roles]);
    }
}

我的find_username视图

@extends('master')
@section('content')
<div class="row">
    <table class="table">
        <thead>
            <tr>
                <th>ID Role</th>
                <th>Role name</th>
                <th>Role level</th>
                <th>Role note</th>
                <th>User name</th>
            </tr>
        </thead>
        <tbody>
            @foreach ($roles as $item)
                <tr>
                <td>{{$item['id']}}</td>
                <td>{{$item['role_name']}}</td>
                <td>{{$item['role_level']}}</td>
                <td>{{$item['role_note']}}</td>
                <td>{{$item->users}}</td>
                </tr>
            @endforeach
        </tbody>
    </table>
</div>
@endsection
提问于
用户回答回答于

你有很多角色。每个角色都有许多用户。您的表格可以正常显示角色名称,滚动级别和角色注释,因为它们分别位于循环$item变量中。

问题是,尽管$item持有这些奇异的领域,$item->users是另一种收集用户对象。这意味着您已在表格中添加了另一个维度。您可能拥有1或100个用户<tr>

要演示,请尝试此代码,特别是添加所有用户名(在新循环中将参数添加到每个用户对象):

@foreach ($roles as $item)
   <tr>
    <td>{{$item['id']}}</td>
    <td>{{$item['role_name']}}</td>
    <td>{{$item['role_level']}}</td>
    <td>{{$item['role_note']}}</td>
    @foreach($item->users as $user)
       <td>
         {{$user->name}}
         {{$loop->last?"":" | "}}  //<-- just to separate names for this test
       </td>
    @endforeach
   </tr>
@endforeach

如果您正确设置了模型和关系,则会向您显示每个角色的用户。但是,正如您所看到的,这可能不是显示此数据的最佳方式。每个角色可能有几十个用户。您可能希望考虑为每个角色的用户创建一个完全独立的表。也许点击此表上的角色的某些内容,并显示具有该角色的用户的新列表或表。

HTH

热门问答

如何设置物联网通信的规则引擎转发到微信小程序?

DylanRichard

腾讯 · 产品经理 (已认证)

万物互联的时代,欢迎来到IoT的世界
推荐

正如参考文章所述,通过规则引擎述是将设备上行数据转发到服务端而不是直接到小程序,需要开发者基于API SDK用于服务端开发,并于小程序进行上下行通信。

在房间内切出app/闪退后还继续收费吗?

腾讯音视频小蔡

深圳市腾讯科技 · 软件开发工程师 (已认证)

QQ:471381568
推荐
1、切出app调用pause的时候是在房间的话,会一直收费。 2、比如A在程序闪退后,如果没有重连,90秒后A会自动退出房间。 3、扣费有疑问可以先看下运营指引:https://cloud.tencent.com/document/product/607/17448 如果对扣费还...... 展开详请

使用微信小程序也可以做腾讯云的标准视频直播吗?使用微信小程序做腾讯云的视频直播和im即时通讯可行吗?

美女视频一起走向共同富裕
推荐
支持的 IM部分,集成云通信 https://cloud.tencent.com/document/product/269/36838 标准直播部分,使用live-pusher和live-player标签,然后用云直播即可 https://cloud.tencent.com/do...... 展开详请

腾讯IM web端sdk 1.7版本,更新到当前最新,在哪里可以查看有什么改动呢?

为什么我通过控制台vnc看到的界面和用vnc viewer看的的界面不一样???

HappyLau谈云计算专注于公有云,私有云解决方案,在kubernetes,openstack,kvm,ceph,linux,shell有丰富的实战经验。
推荐

控制台页面使用的是novnc,novnc是一种基于web页面使用的vnc客户端,详情可参考https://github.com/novnc/noVNC介绍,常规的vnc viewer是图形的客户端,所使用的依赖库有所不同,因此显示也不一样。

iOS在release下不走sendProcessBlock进度回调?

karis

腾讯 · 客户端开发工程师 (已认证)

Karis
推荐

请问是哪个版本的sdk呢,调用代码方便贴一下吗,最好能提供一个能复现的demo哈

所属标签

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励