【问题标题】:How to get reverse in laravel one to many relationship如何在 laravel 一对多关系中反转
【发布时间】:2021-11-19 15:23:28
【问题描述】:

我正在写一个我使用 laravel 雄辩关系的应用程序

表结构

客户


标识 payroll_id 名称

工资单


标识 payroll_id 基本的 呵呵

客户端模型

use Illuminate\Database\Eloquent\Model;

class AdminClient extends Model
{
    public function payroll()
    {
        return $this->hasMany(Payroll::class, "payroll_id", "payroll_id");
    }
}

工资模型

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Payroll extends Model
{
    public function clients()
    {
        return $this->belongsTo(AdminClient::class, "payroll_id", "payroll_id");
    }
}

我能做到

dd(AdminClient::with("payroll")->get());

但下面的相反操作不起作用

dd(Payroll::with("clients")->get());

我得到了客户端的空值。

任何解决方案谢谢。

【问题讨论】:

  • 我们可以看看你的表格结构吗?
  • @Lyzvaleska 我更新了我的问题
  • 你有两个问题,第一个是你在transfer模型里面写了关系,第二个是payroll表中根本不需要payroll_id列,创建也没用.事实上,工资单有很多客户,而且客户对工资单有很多要求。

标签: laravel eloquent relationship


【解决方案1】:

在 AdminClient 中使用它

public function payroll()
    {
        return $this->hasMany(Payroll::class);
    }

并在工资单中使用它

public function clients()
    {
        return $this->belongsTo(AdminClient::class);
    }

或者如果它不起作用,那么在 AdminClient 中使用它

public function payroll()
    {
        return $this->hasMany(Payroll::class, "forign key of AdminClient");
    }

并在工资单中使用它

public function clients()
{
    return $this->belongsTo(AdminClient::class, "payroll_id");
}

希望它的工作

【讨论】:

  • 对我不起作用
猜你喜欢
  • 2016-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 2016-07-20
  • 1970-01-01
  • 2018-09-27
相关资源
最近更新 更多