使用控制器从多个表中检索数据
Using controllers to retrieve data from multiple tables
目前我有一个带有 3 tables 的 SQLite 数据库;账户、互动和清单。在帐户控制器中,我让它从所有三个 table 中提取数据以显示内容。
帐户 table 中存储了多个帐户,交互 table 通过外键 (account_id) 链接。
在帐户页面上,我只想在相应帐户上列出具有相同帐户 ID 的交互。
目前我让它们出现在视图中,但视图当前列出了 table 中的每个交互,我知道这是因为我正在使用 Interaction::all()
但我一直无法弄清楚如何正是要做到这一点,任何帮助将不胜感激。
- 请注意,我没有使用模型。
- 每个账号可以有多次互动
账户控制器
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);
}
您的模型中是否设置了模型关系?如果是这样,您可以使用 with
:
加载相关的 objects
$account = Account::with('interactions', 'checklist')->find($id);
return view('account_view', compact("account"));
在您的 blade 文件中:
$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);
}
目前我有一个带有 3 tables 的 SQLite 数据库;账户、互动和清单。在帐户控制器中,我让它从所有三个 table 中提取数据以显示内容。
帐户 table 中存储了多个帐户,交互 table 通过外键 (account_id) 链接。
在帐户页面上,我只想在相应帐户上列出具有相同帐户 ID 的交互。
目前我让它们出现在视图中,但视图当前列出了 table 中的每个交互,我知道这是因为我正在使用 Interaction::all()
但我一直无法弄清楚如何正是要做到这一点,任何帮助将不胜感激。
- 请注意,我没有使用模型。
- 每个账号可以有多次互动
账户控制器
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);
}
您的模型中是否设置了模型关系?如果是这样,您可以使用 with
:
$account = Account::with('interactions', 'checklist')->find($id);
return view('account_view', compact("account"));
在您的 blade 文件中:
$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);
}