Laravel belongsTo 关系 - 尝试获取 属性 的非对象
Laravel belongsTo relationship - Trying to get property of non-object
User.php
class User extends Authenticatable
{
public function company() {
return $this->belongsTo('App\Company');
}
}
Company.php
class Company extends Model
{
public function users() {
return $this->hasMany('App\User');
}
}
Table 用户
身份证名companies_id
Table 家公司
身份证名
我正在尝试获取附加到用户的公司名称。
$user = User::findOrFail(Auth::user()->id);
$companyName = $user->company()->first()->name;
我收到这条错误消息 Trying to get property of non-object
我不明白我错过了什么...提前谢谢你
默认情况下,Eloquent 使用关系名称 + '_id' 来猜测外键。
解决方案 A
public function company() {
return $this->belongsTo('App\Company', 'companies_id')
}
解决方案 B
public function companies() {
return $this->belongsTo('App\Company')
}
不用 "first" 方法试试。
$companyName = $user->company()->name;
您的 company_id 字段也可能为空
因此您必须在循环中检查您的字段
f.e
foreach($users as $user)
{
if(isset($user->company->title)):
echo $user->company->title;
else:
echo 'empty';
endif;
}
User.php
class User extends Authenticatable
{
public function company() {
return $this->belongsTo('App\Company');
}
}
Company.php
class Company extends Model
{
public function users() {
return $this->hasMany('App\User');
}
}
Table 用户
身份证名companies_id
Table 家公司
身份证名
我正在尝试获取附加到用户的公司名称。
$user = User::findOrFail(Auth::user()->id);
$companyName = $user->company()->first()->name;
我收到这条错误消息 Trying to get property of non-object
我不明白我错过了什么...提前谢谢你
默认情况下,Eloquent 使用关系名称 + '_id' 来猜测外键。
解决方案 A
public function company() {
return $this->belongsTo('App\Company', 'companies_id')
}
解决方案 B
public function companies() {
return $this->belongsTo('App\Company')
}
不用 "first" 方法试试。
$companyName = $user->company()->name;
您的 company_id 字段也可能为空
因此您必须在循环中检查您的字段
f.e
foreach($users as $user)
{
if(isset($user->company->title)):
echo $user->company->title;
else:
echo 'empty';
endif;
}