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 nombre empresas_id
nombre de identificación
Estoy tratando de obtener el nombre de la empresa adjunta al usuario.
$user = User::findOrFail(Auth::user()->id); $companyName = $user->company()->first()->name; Recibí este mensaje de error Trying to get property of non-object
No entiendo lo que me falta... Gracias de antemano
De forma predeterminada, Eloquent toma el nombre de la relación + '_id' para adivinar la clave externa.
public function company() { return $this->belongsTo('App\Company', 'companies_id') } public function companies() { return $this->belongsTo('App\Company') }También puede ser nulo su campo company_id
Esa es la razón por la que debe verificar su campo en el bucle.
fe
foreach($users as $user) { if(isset($user->company->title)): echo $user->company->title; else: echo 'empty'; endif; }Pruébelo sin el método "primero".
$companyName = $user->company()->name;