Laravel Eloquent关系在同一个表上具有相同的外键

Laravel Eloquent关系在同一个表上具有相同的外键,laravel,eloquent,Laravel,Eloquent,我是Laravel的初学者,目前正在尝试创建一个票务系统。我的tickets表有两列,它们都引用users表中的id,即user\u id和handled\u by。我正试图加载由处理的的全名,但它抛出了一个错误“试图获取非对象的属性“全名”。我想知道如何正确地在handled_by和tickets之间建立一种雄辩的关系,以便我可以显示handled_by的全名。下面是我的代码片段 用户模型: public function tickets(){ return $this-&g

我是Laravel的初学者,目前正在尝试创建一个票务系统。我的
tickets
表有两列,它们都引用
users
表中的
id
,即
user\u id
handled\u by
。我正试图加载由处理的
全名
,但它抛出了一个错误“试图获取非对象的属性“全名”。我想知道如何正确地在
handled_by
tickets
之间建立一种雄辩的关系,以便我可以显示
handled_by
全名。下面是我的代码片段

用户模型:

 public function tickets(){
        return $this->hasMany('\App\Ticket');
    }

 public function handledBy(){
      return $this->hasMany('\App\User', 'handled_by', 'id');
  } 
门票型号:

public function user(){
  return $this->belongsTo('\App\User');
}
public function handledBy(){
  return $this->belongsTo('\App\User', 'handled_by', 'id');
}

视图:


在您的用户模型中,将
\App\User
更改为
\App\Ticket
,并将方法名称从
handlerBy
更改为
handlers

公共函数处理程序(){
返回$this->hasMany('\App\Ticket','handled_by','id');
} 
并按方法名而不是下划线大小写名调用它:

{{$ticket->handledBy->full_name}

Hi TsaiKoga,感谢您的快速响应,我尝试了该代码,但仍然抛出相同的错误。@cjdy13您需要通过方法名称而不是下划线大小写名称来调用它。感谢您的进一步澄清,代码现在可以工作了!
@foreach($tickets as $ticket)
<td class="align-middle text-center">{{ $ticket->handled_by->full_name}}</td>
@endforeach
$tickets = Ticket::all()->where('status_id', '1');
return view('admin.open_tickets', compact('tickets'));