【问题标题】:Getting value from many to many relationship in Laravel在 Laravel 中从多对多关系中获取价值
【发布时间】:2018-01-31 18:52:12
【问题描述】:

我正在尝试从具有多对多关系的表中获取价值。 我的关系是: 用户:

public function roles()
    {
        return $this->belongsToMany('App\Role',"users_roles","usersid","rolesid");
}

角色:

public function users()
    {
        return $this->belongsToMany('App\User',"users_roles","usersid","rolesid");
}

在我看来,我这样做了:

@foreach($users as $user)
                    <?php $i++; ?>
                        <tr>
                            <td>{{ $i }}</td>
                            <td>{{$user->name}}</td>
                            <td>{{$user->email}}</td>
                            <td>{{$user->roles->role}}</td>
                        <tr>

@endforeach

我收到以下错误: 未定义索引:角色

但是当我执行 {{$user->roles}} 时,我得到以下信息:

[{"id":1,"role":"Administrator","created_at":null,"updated_at":null,"pivot":{"usersid":4,"rolesid":1}}]

谁能告诉我哪里出错了?

【问题讨论】:

    标签: php laravel-5


    【解决方案1】:

    你可以的

    <td>
        @if($user->roles)
            {{$user->roles->first()->role}}
        @else
            No role for this user
        @endif
    </td>
    

    获取用户时需要使用Eager load

    【讨论】:

    • 我得到:试图获取非对象的属性
    猜你喜欢
    • 1970-01-01
    • 2020-04-29
    • 2019-08-21
    • 2018-12-29
    • 2019-05-23
    • 1970-01-01
    • 2016-07-20
    • 2023-04-09
    相关资源
    最近更新 更多