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']来完成这项工作,但我有一种感觉,我误解了一些我应该想出的基本内容!
任何帮助将不胜感激!
答案 0 :(得分:1)
first()返回单个模型,而不是集合。我认为你的代码应该工作,除了可能超级用户函数(不是类)应该全是小写。我以前多次使用过这种结构而没有看到这个问题。
答案 1 :(得分:0)
我修复了它,上面的答案有所帮助,但事实证明我的超级用户模型中有一个public $first_name
似乎打破了它。
由于