Laravel eloquent 使用来自一个 table 的 ID 来搜索路口 table?
Laravel eloquent use id from one table to search junction table?
所以我有 3 tables
-商务
- ID
-地址
- ID
-business_address
- business_id
- address_id
现在,当我进入查看业务页面时,我将 business->id 从业务 table 传递为 $id:
public function displayBusiness($id) {
$business = Business::find($id);
$address = Address::find($id);
这一刻绝对可以正常工作,但如果地址有不同的 ID 怎么办?
所以:
-Business
- id = 1
-Address
- id = 2
-business_address
- business_id = 1
- address_id = 2
那么我该如何修改它,以便当业务中的 id table = 1 它进入 business_address 并找到匹配的地址 id 并带回匹配它的记录
你应该拥有的是一段感情。因此,在您的 Business
模型中,您需要添加以下内容。
public function addresses() {
return $this->belongsToMany(Address::class, 'business_address', 'address_id', 'business_id');
}
然后在您的 Address
模型中,您将拥有以下内容。
public function addresses() {
return $this->belongsToMany(Business::class, 'business_address', 'business_id', 'address_id');
}
有了这个,您现在可以执行以下操作。
public function displayBusiness($id) {
$business = Business::with('addresses')->find($id);
}
然后您可以通过 $business->addresses
.
访问地址
这完全取决于您目前拥有的东西,因此我假设一个 Address
可以属于多个 Business
。如果情况并非如此,您将需要重构您的关系和数据库,因为不需要枢轴 table。
所以我有 3 tables
-商务 - ID -地址 - ID -business_address - business_id - address_id
现在,当我进入查看业务页面时,我将 business->id 从业务 table 传递为 $id:
public function displayBusiness($id) {
$business = Business::find($id);
$address = Address::find($id);
这一刻绝对可以正常工作,但如果地址有不同的 ID 怎么办?
所以:
-Business
- id = 1
-Address
- id = 2
-business_address
- business_id = 1
- address_id = 2
那么我该如何修改它,以便当业务中的 id table = 1 它进入 business_address 并找到匹配的地址 id 并带回匹配它的记录
你应该拥有的是一段感情。因此,在您的 Business
模型中,您需要添加以下内容。
public function addresses() {
return $this->belongsToMany(Address::class, 'business_address', 'address_id', 'business_id');
}
然后在您的 Address
模型中,您将拥有以下内容。
public function addresses() {
return $this->belongsToMany(Business::class, 'business_address', 'business_id', 'address_id');
}
有了这个,您现在可以执行以下操作。
public function displayBusiness($id) {
$business = Business::with('addresses')->find($id);
}
然后您可以通过 $business->addresses
.
这完全取决于您目前拥有的东西,因此我假设一个 Address
可以属于多个 Business
。如果情况并非如此,您将需要重构您的关系和数据库,因为不需要枢轴 table。