您好我有一个名为user_items
的表格,其中包含以下信息:id
,user_id
,item_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
答案 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');
}