无法建立联系

时间:2019-04-09 11:00:50

标签: php laravel eloquent has-one-through

我正试图建立一种直通的关系。

表格:

ADDRESS

在Package.php

packages
    -guest_detail_id

guest_details
    -client_id

clients
    -id

2 个答案:

答案 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'
    );
}