我正试图建立一种直通的关系。
表格:
ADDRESS
在Package.php
packages
-guest_detail_id
guest_details
-client_id
clients
-id
答案 0 :(得分:1)
在您的问题中,我发现一个程序包有一个客户端。这不能通过直接关系来实现。
这可以通过hasOneThrough()
关系船来完成。
hasOneThrough()
关系可以通过中间表(此处为guest_details
)来实现。因此该关系变为One package has one GuestDetails and one GuestDetails has one client, hence one package has one Client
。
public function client() {
return $this->hasOneThrough(Client::class, GuestDetails::class, 'client_id', 'id');
}
答案 1 :(得分:0)
您基本上是在寻找一种BelongsToThrough
关系,所以您必须交换外键和本地键:
public function client() {
return $this->hasOneThrough(
Client::class, GuestDetails::class,
'id', 'id',
'guest_detail_id', 'client_id'
);
}