在 Laravel 8 - Eloquent 上将关系与集合分开
Separate a relationship from the collection on Laravel 8 - Eloquent
我正在生成一个收集发票和相关发票客户的查询。
$invoice = Invoice::with(['lines', 'fullClient'])->findOrFail($idInvoice);
return view('invoiceView', ['invoice'=>$invoice]);
它工作正常,通过$invoice->clients,我可以访问客户端。
但我希望能够将客户与收款发票分开。通过另一个变量发送它。所以它看起来像这样:
$invoice = Invoice::with(['lines', 'fullClient'])->findOrFail($idInvoice);
//Some magic here
return view('invoiceView', ['invoice'=>$invoice,'client'=>$client]);
这是为了利用发票创建视图(以便能够编辑),这是 $clients 集合所期望的。
我已经搜索过,在视图中执行此操作,但不可能或不建议这样做。
我想我可以在发送给查看之前做这样的事情:
$client = $invoice->customer
但是我会发送两次以供查看。
你可以使用 pluck()
$invoice = Invoice::with(['lines', 'fullClient'])->findOrFail($idInvoice);
//The magic
$client = $invoice->pluck('fullClient');
return view('invoiceView', ['invoice'=>$invoice,'client'=>$client]);
要取消与模型的关系,您可以使用 unsetRelation($relation)
方法
$invoice = Invoice::with(['lines', 'fullClient'])->findOrFail($idInvoice);
$client = $invoice->fullClient;
$invoice->unsetRelation('fullClient');
return view('invoiceView', ['invoice'=>$invoice,'client'=>$client]);
我正在生成一个收集发票和相关发票客户的查询。
$invoice = Invoice::with(['lines', 'fullClient'])->findOrFail($idInvoice);
return view('invoiceView', ['invoice'=>$invoice]);
它工作正常,通过$invoice->clients,我可以访问客户端。 但我希望能够将客户与收款发票分开。通过另一个变量发送它。所以它看起来像这样:
$invoice = Invoice::with(['lines', 'fullClient'])->findOrFail($idInvoice);
//Some magic here
return view('invoiceView', ['invoice'=>$invoice,'client'=>$client]);
这是为了利用发票创建视图(以便能够编辑),这是 $clients 集合所期望的。
我已经搜索过,在视图中执行此操作,但不可能或不建议这样做。
我想我可以在发送给查看之前做这样的事情:
$client = $invoice->customer
但是我会发送两次以供查看。
你可以使用 pluck()
$invoice = Invoice::with(['lines', 'fullClient'])->findOrFail($idInvoice);
//The magic
$client = $invoice->pluck('fullClient');
return view('invoiceView', ['invoice'=>$invoice,'client'=>$client]);
要取消与模型的关系,您可以使用 unsetRelation($relation)
方法
$invoice = Invoice::with(['lines', 'fullClient'])->findOrFail($idInvoice);
$client = $invoice->fullClient;
$invoice->unsetRelation('fullClient');
return view('invoiceView', ['invoice'=>$invoice,'client'=>$client]);