gpt4 book ai didi

mysql - 未找到列 : 1054 Unknown column 'managers.id' in 'on clause' in Laravel 5 Many-to-Many relationship query

转载 作者:行者123 更新时间:2023-11-29 11:56:35 25 4
gpt4 key购买 nike

我是 Laravel 新手。我正在开发这个 laravel 5 应用程序,但我被困在这里了。

我有两个 Eloquent 模型

class Manager extends Eloquent{

public function supervisors()
{
return $this->belongsToMany('App\Supervisor')->withTimestamps();
}

}

class Supervisor extends Eloquent {

public function managers()
{
return $this->belongsToMany('App\Manager');
}
}

经理和主管之间存在多对多关系。我已遵循 laravel 5 文档并按预期创建了我的表。

例如经理表结构

  • user_id PK(来自用户表的 FK(引用 ID))
  • 年级

主管表结构

  • user_id PK(来自用户表的 FK(引用 ID))
  • 卓越

数据透视表结构(manager_supervisor)

  • manager_id PK(来自经理表的 FK(引用 user_id))
  • supervisor_id PK(来自主管表的 FK(引用 user_id))

当我执行以下查询时,结果与预期不符

 $user = App\User::find(2);
$user->supervisor->managers;

示例结果:

Illuminate\Database\QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'managers.id' in 'on clause' (SQL: select `managers`.*, `manager_supervisor`.`supervisor_id` as `pivot_supervisor_id`, `manager_supervisor`.`manager_id` as `pivot_manager_id` from `managers` inner join `manager_supervisor` on `managers`.`id` = `manager_supervisor`.`manager_id` where `manager_supervisor`.`supervisor_id` is null)'

我期望“on 子句”返回类似的内容

managers`.`user_id` = `manager_supervisor`.`manager_id` where `manager_supervisor`.`supervisor_id` is 2

我在这里缺少什么?到底哪里出了问题?

最佳答案

我需要做的就是在两个模型中设置一个主要变量:

class Manager extends Eloquent{

protected $primaryKey = 'user_id';

public function supervisors()
{
return $this->belongsToMany('App\Supervisor')->withTimestamps();
}

}

class Supervisor extends Eloquent {

protected $primaryKey = 'user_id';

public function managers()
{
return $this->belongsToMany('App\Manager');
}
}

关于mysql - 未找到列 : 1054 Unknown column 'managers.id' in 'on clause' in Laravel 5 Many-to-Many relationship query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33101143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com