class User extends Authenticatable
{
public function company() {
return $this->belongsTo('App\Company');
}
}
class Company extends Model
{
public function users() {
return $this->hasMany('App\User');
}
}
iD名Companies_id
iD名
ユーザーに関連付けられている会社の名前を取得しようとしています。
$user = User::findOrFail(Auth::user()->id);
$companyName = $user->company()->first()->name;
このエラーメッセージが表示されましたTrying to get property of non-object
不足しているものを取得できません...よろしくお願いします
デフォルトでは、Eloquentはリレーションシップの名前+ '_id'を使用して外部キーを推測します。
public function company() {
return $this->belongsTo('App\Company', 'companies_id')
}
public function companies() {
return $this->belongsTo('App\Company')
}
また、company_idフィールドがnullの場合もあります。
そのため、ループでフィールドをチェックする必要があります
f.e
foreach($users as $user)
{
if(isset($user->company->title)):
echo $user->company->title;
else:
echo 'empty';
endif;
}
「最初の」方法なしで試してください。
$companyName = $user->company()->name;