【发布时间】:2017-11-18 22:18:32
【问题描述】:
我有多对多的关系,这就是我正在做的事情:
在 url 中,我正在传递业务表中的业务 ID:
@foreach ($business as $businesses)
<a target="_blank" href="{{ url('business/' . $businesses->id) }}"> {{($businesses->name) }}
</a> @endforeach
然后运行这个函数:
public function displayBusiness($id) {
$business = Business::find($id)->addresses;
//return $business;
//$address = Address::find($id);
$session = session()->put('key', $id);
$gallery = Gallery::where('business_id', $id)->get();
$location = Location::where('business_id', $id)->get();
$review = Review::where('business_id', $id)->get();
return view('displayBusiness', compact('business', 'address', 'gallery', 'location', 'review'));
}
但问题是被注释掉的行,带回与业务 id 匹配的结果,但情况并非总是如此,因为有时业务 id = 1 和地址 id = 4 但此代码会带回地址 id = 1
所以我要做的是查看具有 business_id 和 address_id 的联结表,并使用 $id 查找与该 id 匹配的 business_id 和 address_id。
退货业务给我[]
所以我想要的是这样的:
假设 $id = 1 进入business_address,找到匹配1的business_id; 还找到与找到的business_id 匹配的address_id, 将匹配的 id 带回业务表并压缩匹配 id 的结果 地址表也一样
我的模型:
地址.php
public function businesses() {
return $this->belongsToMany(Business::class, 'business_address', 'business_id', 'address_id');
}
业务.php
public function addresses() {
return $this->belongsToMany(Address::class, 'business_address', 'address_id', 'business_id');
}
【问题讨论】:
标签: laravel laravel-5 eloquent