未定义的属性,即使它在那里

时间:2014-07-29 12:29:55

标签: php laravel laravel-4

我有一个对象Brand,我想要打印此对象的id

执行return Sentry::getUser()->brand()->get()->id时出现以下错误:

Undefined property: Illuminate\Database\Eloquent\Collection::$id

但是,如果我删除了->id部分,我的整个对象就好了,包括idreturn Sentry::getUser()->brand()->get()

我做错了什么?

enter image description here

3 个答案:

答案 0 :(得分:4)

您需要使用:

return Sentry::getUser()->brand()->first()->id;

否则,您最终会得到一组用户(即使该集合可能只包含一个用户)。

答案 1 :(得分:0)

它可能会保留在您使用的框架中。我的猜测是,任何类型的每个对象都是一个默认的对象类型对象,它具有自己的id。如果可能,将“id”更改为brand_id或类似的东西。

答案 2 :(得分:0)

如果只有一个对象且始终为1,则可以使用return Sentry :: getUser() - > brand() - > first() - > id。它检索单个对象,而get()返回一个对象数组,即使只有一个匹配。