雄辩关系上的toSql()返回`where id = null`

时间:2018-08-21 06:49:06

标签: php laravel eloquent pivot-table

我正在处理3维数据透视表

建筑

我制作了以下表格和模型。

register_colleges( model: RegisterCollege )
- college_id
- random field

programs ( model: Program )
- id
- program_name

courses ( model: Course )
- id
- course_name

course_program_register_college
- course_id
- program_id
- college_id

现在我面临的问题是,当我尝试访问null(例如)时,我的视图显示了program_name的结果。这是我所期望的,因为当我将其转换为Sql()时,它显示以下查询-

  

从'程序'的内部程序'course_program_register_college'中选择*。'id'='course_program_register_college'。'program_id'其中'course_program_register_college'。'college_id'为空

我无法弄清楚为什么这个查询试图获取数据where 'course_program_register_college'.'college_id' is null

RegisterCollege.php(模型)

// pivot table is looking for register_college_id as a primary key field
protected $primarykey = 'college_id';

  public function programs(){
    return $this->belongsToMany('App\Program', 
    'course_program_register_college', 'college_id');
  }

编辑:-

口才查询

{{ $college->programs()->toSql() }} // in some view.blade.php

0 个答案:

没有答案