繁体   English   中英

从laravel的数据透视表中获取所有数据

[英]getting all the data from pivot table in laravel

我正在尝试将所有lead_id放入我的数据透视表中,但是我无法使其正常工作。

控制器:

     $levels = Level::all();
     $levels->lead()->attach('lead_id');
     return $levels;

型号级别:

public function lead(){
    return $this->belongsToMany(Lead::class, 'level_students')->withPivot('level_id', 'lead_id');
  }

模型负责人:

 public function level(){
return $this->belongsToMany(Level::class, 'level_students')->withPivot( 'lead_id', 'level_id');

}

如果您指的是Level所有lead_id ,则可以使用lead_id pluck()

$level->lead->pluck('lead_id');

我不太确定您要实现什么目标,因为您似乎想检索与任何Level相关的所有lead_id 但是,在这种情况下,您可以为数据透视表创建一个模型(例如LevelLead )并使用distinct()或与Query Builder一起使用:

$leadIds = DB::table('level_students')->select('lead_id')->distinct()->get();

如果要获取引用表的列(例如leads表的name列),则可以使用JOIN。 查看Laravel的文档以了解更多选项。 例如,假设Lead的表名是leads ,则:

$leads = DB::table('level_students')->join('leads', 'level_students.lead_id', '=', 'leads.lead_id')->select('level_students.lead_id', 'leads.name')->distinct()->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM