我有两个模型 - InternalNotesThread和InternalNotes
class InternalNotesThread extends Model {
public function notes(){
return $this->hasMany('App\InternalNotes', 'thread_id', 'id');
}
}
class InternalNotes extends Model {
public function thread() {
return $this->belongsTo('App\InternalNotesThread');
}
public function users()
{
return $this->belongsToMany('App\User', 'user_notes_tagged', 'internal_notes_id', 'user_id');
}
}
此外,InternalNotes映射到User,关系为belongsToMany。
数据库结构:
internal_notes_thread:
id - int
ticket_id (FK) - int
name - string
internal_notes:
id - int
thread_id (FK) - int
notes - string
user_notes_tagged: (Many to many with internal_notes and User)
internal_notes_id (FK) - int
user_id (FK) - int
对于每个笔记,可能会有一些用户标记。
如何直接将此关系与internal_notes_thread ???
联系起来我用这个获得数据:
$data = InternalNotesThread::with('notes')->where('ticket_id', '=', $id)->get()->toArray();
但是,在 notes 数组中,我无法在该笔记中标记用户
如何一次性获取所有数据?
答案 0 :(得分:3)
您并不急于加载用户,因此他们不会显示在您的->toArray()
数组中。
试试这个:
$data = InternalNotesThread::with('notes.users')
->where('ticket_id', '=', $id)
->get()
->toArray();