Laravel Eloquent关系在同一个表上具有相同的外键
我是Laravel的初学者,目前正在尝试创建一个票务系统。我的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
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'));