first()是否在Laravel中返回一个集合?我可以直接访问属性而无需使用toArray()吗?

时间:2015-02-18 16:31:28

标签: php laravel laravel-5

Laravel相当新,无法获得用户的名字。名字和姓氏存储在一个名为superusers的单独表中。我有一个包含以下内容的用户模型:

public function Superuser(){
    return $this->hasOne('App\Superuser');
}

public function getFirstName(){
    if ($this->usertype == 1) {
        return $this->Superuser->first_name;
        }
}

和超级用户模型

public function User(){
    return $this->belongsTo('App\User');
}

superusers表包含列id,first_name,last_name,mobile,timestamps。

当我在我的刀片模板中调用Auth::user()->getFirstName()时,除了从getFirstName方法中删除->first_name之外,我什么也得不到,它会从表中返回正确的对象。

我可以通过在方法中返回一个数组并返回$ superuser [' first_name']来完成这项工作,但我有一种感觉,我误解了一些我应该想出的基本内容!

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

first()返回单个模型,而不是集合。我认为你的代码应该工作,除了可能超级用户函数(不是类)应该全是小写。我以前多次使用过这种结构而没有看到这个问题。

答案 1 :(得分:0)

我修复了它,上面的答案有所帮助,但事实证明我的超级用户模型中有一个public $first_name似乎打破了它。

由于