能言善辩但不工作

问题描述 投票:0回答:1

您好,我在使用 laravel eloquent 时遇到了这个问题。 这段代码(在文档中)

$debtHistory = DebtHistory::with('user.firstname')->get();
似乎不起作用,因为它返回类似
Call to undefined relationship [firstname] on model [App\User].
的东西我在这里做错了什么?有什么想法吗?谢谢你们。 :)

注意:如果这有帮助。

我实际上有一种替代方法,但我想在一个查询中完成它。这段代码可以帮助您了解我正在尝试做什么。

$debtHistory = DebtHistory::whereBetween('created_at',[$filterData['from'], $filterData['to']])->where('amount', '>', '0')->get();
$excelData = [];
foreach($debtHistory as $history) {
     array_push($excelData, ['Name' => $history->user->firstname .' '. $history->user->lastname, 'Debt' => $history->amount, 'Date' => Carbon::parse($history->created_at)->format('Y-m-d')]);
}

我想在雄辩的模型查询中执行该过程,这可能吗?

php laravel eloquent
1个回答
3
投票

此错误表示

User
模型没有定义
firstname
关系。您应该像这样加载数据:

$debtHistory = DebtHistory::with('user')->get();

并用这样的方式显示它:

@foreach ($debtHistory as $one)
    {{ $one->user->firstname }}
@endforeach

如果

user()
具有
belongsTo()
关系,这将起作用。

© www.soinside.com 2019 - 2024. All rights reserved.