我正在尝试从发票中退回用户和物品数据

时间:2019-11-28 07:27:21

标签: laravel

这是我在Invoice Controller中的功能

public function edit(invoice $invoice, $id)
    {
        $invoice = Invoice::with('users', 'items.products')->findOrFail($id);

        return view(compact('invoice'));
    }

我认为

{{ $invoice->user_id->email }}

4 个答案:

答案 0 :(得分:1)

您正在加载的关系名为users,因此是该关系的动态属性的名称。 user_id是用户的ID,而不是关系。

{{ $invoice->users->email }}

这还假设发票总是有一个用户。

Laravel 6.x Docs - Eloquent - Relationships - Relationship Methods vs Dynamic Properties

旁注:

命名可能需要一些工作,因为我假设的发票应该只有一个用户,所以单数。当某事物可以有多个时,使用复数;当一个事物不存在时,使用单数。关系应命名为user

答案 1 :(得分:0)

您使用了错误的属性,$invoice->user_id可能是来自数据库的原始整数值。您需要像这样调用该关系:

{{ $invoice->user->email }}

$invoice->user将返回与$invoice->user_id ID相关的用户对象。

答案 2 :(得分:0)

您忘记了要返回的视图名称

public function edit(invoice $invoice, $id)
    {
        $invoice = Invoice::with('users', 'items.products')->findOrFail($id);

        return view('invoice.edit',compact('invoice'));
    }

并使用关系名称访问

{{ $invoice->users->email }}

答案 3 :(得分:0)

请输入视图名称以返回

public function edit(invoice $invoice, $id)
    {
        $invoice = Invoice::with('users', 'items.products')->findOrFail($id);

        return view('your_blade_file_path',compact('invoice'));
    }

在您的刀片文件中写上

{{ $invoice->users->email }}