目前我有一个包含3个表的SQLite数据库;帐户,互动和清单。在帐户控制器中,我从所有三个表中提取数据以显示内容。
帐户表中存储有多个帐户,交互表通过外键(account_id)链接。
在帐户页面上,我只希望在相应帐户中列出具有相同帐户ID的交互。
目前我让它们出现在视图中,但是视图目前列出了表格中的每个交互,我知道这是因为我正在使用Interaction::all()
但是我一直无法弄清楚到底是怎么做到的, 任何帮助将不胜感激。
的AccountController
public function show($id)
{
$account = Account::find($id);
$checklists = Checklist::where('account_id', $id)->first();
//$interactions = Interaction::get();
$interactions = Interaction::all();
//dd($interactions);
return view('account_view')->with('account', $account)->with('checklists', $checklists)->with('interactions', $interactions);
}
答案 0 :(得分:1)
您的模型中是否设置了模型关系?如果是这样,您可以使用with
加载相关对象:
$account = Account::with('interactions', 'checklist')->find($id);
return view('account_view', compact("account"));
在您的刀片文件中:
$account;
$account->checklist; //your checklist with account_id of $account->id
$account->interactions; //your interactions with account_id of $account->id
在帐户模型中设置关系:
public function checklist(){
return $this->hasOne(Checklist::class);
}
public function interactions(){
return $this->hasMany(Interaction::class);
}