在表中显示其他属性 - Laravel

时间:2017-11-13 10:10:08

标签: php laravel

我的数据透视表admin_user,其中包含其他属性item_no。我发现很难将其他属性检索到我的html表中。

PS:我在我的表中尝试$admin->pivot->item_no,但收到错误trying to get a non-object

管理

public function users()
    {
        return $this->belongsToMany('App\User')->withPivot('item_no')
        ->withTimestamps();
    }

admin_food

admin_id

user_id 

item_no

控制器

public function index()
     {
         $admins = Admin::where('id',1)->get();

         return view('index',compact('admins'));
     }

HTML

<table class="table" id="table"> 
<thead>
    <tr> 
    <th>Order No#</th>
    <th>Name</th>

    </tr>

</thead>
<tbody>
@foreach($admins as $admin)
<tr >
<td>{{$admin->name}}</td>

</tr>
@endforeach
</tbody>
</table>

1 个答案:

答案 0 :(得分:1)

您可以通过访问用户/相关模型的pivot属性来访问item_id。

您的控制器正在返回只有一个管理员的集合。

     $admins = Admin::where('id',1)->get();

admins将是1个管理员的集合,其ID = 1。

如果这是故意的,那么您可以通过以下代码访问与此管理员相关的每个用户的item_id:

@foreach($admins as $admin)
    @foreach($admin->users as $user)
        <tr>
            <td>{{$user->name}}</td>
            <td>{{$user->pivot->item_id}}</td>
        </tr>
    @endforeach
@endforeach

简化:

$admin = Amdin::first();
$item_id = $admin->users()->first()->pivot->item_id