laravel 一个表关联另一个表的两个字段(pid,uid)等于uid但是 不等于pid 应该如何写关联

laravel 一个表关联另一个表的两个字段(pid,uid)等于uid但是 不等于pid 应该如何写关联

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 13
GDDD

建议你重新建表

2年前 评论

可以试下这样
A表id,B表pid,uid
A::leftJoin(‘b’,function($join){
$join->on(‘a.id’,’=’,’b.uid’)->where(‘a.id’,’!=’,’b.pid’)
})

或者在A的模型文件里
public function b(){
//根据实际需求选择hasMany或者belongTo
return $this->hasMany(B::class,’b.uid’,’a.id’)->where(‘a.id’,’!=’,’b.pid’)
}

2年前 评论
class U extends Model
{
  public function p(): HasOne
  {
      return  $this->hasOne(P::class, 'pid', 'uid');
  }
}
2年前 评论
Su 2年前

一个表的一个字段关联另一个表的两个字段(pid, uid), 这个字段等于 uid 但是不等于 pid 。是这么理解吗??

不等于pid 你是怎么做到 pid 和另一个表关联的?

2年前 评论
yinxinfu (楼主) 2年前
Su (作者) 2年前
yinxinfu (楼主) 2年前
playmaker

不等于 pid 得看是啥业务场景啊 pid 到底是条件 还是 关联相关字段。

可以说下啥业务场景吗?

2年前 评论
yinxinfu (楼主) 2年前

没看明白问题,建议详细描述一下

2年前 评论
yinxinfu (楼主) 2年前

问题解决了记得回来写下结论,采纳答案,养成良好习惯

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!