【发布时间】:2013-07-15 17:47:12
【问题描述】:
我正在尝试将一些数据附加到视图中,并且已经成功地多次执行此操作。但是我的最新页面抛出错误:
Undefined property: Illuminate\Database\Eloquent\Collection::$pay_method
在我的控制器中,我有以下查询:
$receipt = Receipt::where('invoice_id', '=', $id)->get();
$id 是一个保存发票 ID 的变量。
我将对象传递给视图,如下所示:
return View::make('greenfee.edit')
->with('receipt', $receipt);
在视图中——我只是在做测试:
{{ $receipt->pay_method }}
'pay_method' 是表中的一列。
这会引发错误。
为了进一步测试,我已经使用 print_r 测试了 $receipt 包含数据,并且该属性肯定存在 - 这是一个摘录:
[pay_method] => card
这是我期望的值。
那么 - 我在这里遗漏和误解了什么?
另外 - 我应该(或不)何时在查询中使用 get()?
感谢所有帮助 塔
【问题讨论】:
-
Receipt::where('invoice_id', '=', $id)->get();返回对象数组(集合)。因此,当您获得集合时,您正在调用 laravel 集合中不存在的集合的 pay_method。您需要做的是遍历视图中的收据。 -
嗨 - 感谢您的信息 - 我更改为 first() 如下所示,效果很好。谢谢