首页 > 解决方案 > 如何将数据库表中的一个“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>

标签: databaselaraveleloquentrelational-databaseone-to-one

解决方案


如果您需要基于父表获取数据,请尝试使用 laravel 关系。

根据您的表格设计,您需要选择关系。

所以你的代码看起来像这样,

$account = Account::with('relationShipName')->orderBy('account_name')->get();

Account模型中

public function relationShipName() {
      return $this->hasOne('AnotherModel:class');
}

如果您按照 laravel 标准设计了表结构,那么它将起作用,否则您需要传递您的local&foreign键。

更多信息: Laravel 关系


推荐阅读