database - 如何将数据库表中的一个“id”匹配到另一个 - Laravel
问题描述
我对 Laravel 很陌生,我在将一个数据库表中的“id”匹配到另一个时遇到了麻烦。
在我看来,我正在显示一个表格,其中包含从我的数据库中获取的数据。表的一列是从“声明”表中提取的“ID”。
我还有一个“accounts”表,用于存储相关“id”的“account_name”。所以我试图在与“id”匹配的地方显示“account_name”。
控制器中的代码
$account = Account::orderBy('account_name')->get();
$data = [
'claim_data' => $claim_data,
'client' => $client,
'start_date' => $start_date,
'end_date' => $end_date,
'capacity' => $capacity,
'status' => $status,
'account' => $account
];
$returnHTML = view('reports._get_client_claim_report')->with($data)->render();
代码在视图
<td>{{ ($claim->client_account_id == $account->id ? $account->account_name : '') }}</td>
解决方案
如果您需要基于父表获取数据,请尝试使用 laravel 关系。
根据您的表格设计,您需要选择关系。
所以你的代码看起来像这样,
$account = Account::with('relationShipName')->orderBy('account_name')->get();
在Account
模型中
public function relationShipName() {
return $this->hasOne('AnotherModel:class');
}
如果您按照 laravel 标准设计了表结构,那么它将起作用,否则您需要传递您的local
&foreign
键。
更多信息: Laravel 关系
推荐阅读
- php - 如何在 JSPDF 的 fromHTML() 中设置 HTML 的高度并隐藏溢出的内容?
- r - R 语言 - 从 URL 的源代码中抓取数据
- linux - /proc/uptime 和 dmesg 之间的时间戳差异
- ios - iOS:单元测试看不到我的目标标识符
- typo3 - direct_mail:获取页面内容不起作用
- offline - 如何限制网络封闭的客户使用我的许可软件?
- spring - 性能 - Spring Boot - 服务器响应时间
- three.js - 将 THREE.js 与 aurelia-cli 一起使用,导出为全局
- amazon-web-services - Slack 机器人的动态调度 Lambda 触发器
- javascript - 对于 html2canvas 字体系列不起作用