Laravel在发票清单中显示客户名称

时间:2018-07-16 09:20:40

标签: php laravel

我有两个表:“客户”和“发票”。客户模型有很多发票,而发票模型属于一个客户,实际上是一对多的关系,没什么特别的。

在客户资料页面上,我显示了他的发票:

ClientController.php

public function show($id) {

    $client = Client::findOrFail($id);

    $invoices = Client::find($id)->invoices;

    return view('clients/profile', compact('clients', 'invoices'));

}

在视图中,我有一个循环显示所有发票数据。一切都很好! 我的问题在发票页面上。发票页面有一个范围:显示所有客户的所有发票,但在发票清单中显示客户名称。那是我的思想部分,因为我不知道如何从“客户”表中选择客户名称。在发票表中,我有一行“ client_id”。 目前我有这段代码: InvoiceController

public function index() {

    $invoices = Invoice::all();
    $clients = Client::all();

    return view('invoices/list', compact('invoices', 'clients'));

}

list.blade.php

@foreach ($invoices as $invoice)
     {{ $invoice->number }}
     @foreach ($clients as $client)
          {{ $client->name }}??????????????
     @endforeach
     {{ $invoice->amount }}
@endforeach

$ client-> name上无显示。我不知道如何获取发票上的每个客户名称,因为我需要基于“发票”表中的“ client_id”从“客户”表中显示客户名称。也许我可以用Eloquent ....?!?

1 个答案:

答案 0 :(得分:0)

那么,您只有一个发票的客户,

在发票模型中

设置 client()关系 然后与客户取得发票

$invoices = Invoice::with('client')->all();

之后,在刀片文件中

@foreach ($invoices as $invoice)
     {{ $invoice->number }}
     {{ $invoice->client->name }}
     {{ $invoice->amount }}
@endforeach