需要从user_items表LARAVEL获取ID

时间:2017-07-22 08:36:46

标签: php mysql

您好我有一个名为user_items的表格,其中包含以下信息:iduser_iditem_id

目前,我可以从items表中获取用户项目,如下所示:

public function userItem()
{
return $this->belongsToMany('App\Item','user_items','user_id','item_id');
}

在我的HTML中,我这样做:

@foreach(Auth::user()->userItem as $item)

但现在我想从id表中获取user_items列,我遇到了问题。 如果我这样做的话 User模型

public function sellItem()
{
    return $this->hasMany('App\UserItem');
}

并在HTML中像这样:

 @foreach(Auth::user()->sellItem as $itemId)   
 <a href="/sell-item/{{$itemId->id}}" class="btn-sm btn-danger" style="text-decoration: none">Sell for {{$item->price/2}} <img src="/img/gold.png"></a><br>
 @endforeach

它复制了我的HTML,因为user_items中有多少项属于用户。所以问题是如何避免重复,只获取Auth::user()->sellItem ID并将其放入网址?

这是完整的HTML

@foreach(Auth::user()->userItem as $item)
    <img src="{{$item->img}}">
     <span class="popuptext" id="myPopup">
 {{$item->title}}<br> 

 @foreach(Auth::user()->sellItem as $itemId) // THIS DUPLICATES THE BUTTON  
 <a href="/sell-item/{{$itemId->id}}" class="btn-sm btn-danger" style="text-decoration: none">Sell for {{$item->price/2}} <img src="/img/gold.png"></a><br>
 @endforeach

 <p>{{$item->description}}</p>
     </span> 
@endforeach

1 个答案:

答案 0 :(得分:0)

这是一种多对多的关系。

用户有许多物品和物品属于许多用户,因此userItem表充当2表之间的桥梁。

为了在laravel中执行此操作,您应该在userItem.php中以这种方式执行此操作

userItem.php:

public function item() 
{ 
    return $this->belongsTo('App\Item'); 
} 

public function User() 
{ 
    return $this->belongsTo('App\User'); 
}