我在Laravel 5.1中定义了一个模型。出于某种原因,我似乎无法从中获取身份:
Psy Shell v0.5.2 (PHP 5.6.13-0+deb8u1 — cli) by Justin Hileman
>>> $survey = \App\Survey::where('id',54)->get();
=> Illuminate\Database\Eloquent\Collection {#682
all: [
App\Survey {#693
id: 54,
created_at: "2015-10-12 03:18:32",
updated_at: "2015-10-12 03:18:32",
location_id: 0,
},
],
}
>>> echo $survey->id;
PHP error: Undefined property: Illuminate\Database\Eloquent\Collection::$id on line 1
>>>
我做错了什么?
答案 0 :(得分:3)
您正在使用' get'检索你的recrods的方法。但事实上,' get' method返回一组模型。
因此,为了获取您的ID,您需要使用例如foreach语句来循环集合。
但您也可以使用另一个选项,只为您提供一个模型实例。
例如:
$survey = \App\Survey::where('id',54)->first();
$survey = \App\Survey::find(54);
两者都将返回单个模型实例。
所以在此之后你可以使用:
echo $survey->id;
访问您的ID。
有关此主题的更多信息,请参阅此链接:Retrieving Single Models / Aggregates
答案 1 :(得分:2)
您正在尝试访问集合上的ID,这将引发错误。尝试将查询修改为
$survey = \App\Survey::where('id',54)->first();
将get()
替换为first()
,它会正常工作。
或者您可以使用find()
按主键$survey = \App\Survey::find(54);