无法建立单向关系

Unable to make relation in has-one-through

我正在努力建立一段有来有往的关系。

表格:

packages
    -guest_detail_id

guest_details
    -client_id

clients
    -id

在Package.php

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Packages extends Model {
  /**
   * Get the client.
   */
  public function client() {
      return $this->hasOneThrough(---what will be params---);
  }
}

在你的问题中,我发现一个包裹有一个客户。无法通过直接关系实现。 这可以通过 hasOneThrough() 关系来完成。

hasOneThrough()关系可以通过中间table实现,这里是你的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');
 }

你基本上是在寻找一个BelongsToThrough关系,所以你必须交换外键和本地键:

public function client() {
    return $this->hasOneThrough(
        Client::class, GuestDetails::class,
        'id', 'id',
        'guest_detail_id', 'client_id'
    );
}