I'm trying to use relationships to display data on the screen but I get the following error:
Trying to get property 'name' of non-object
In this command
$recebimento->planoconta()->get()->first()->nome
MODEL ACCOUNT PLAN
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Planoconta extends Model
{
//
protected $table = 'plano_contas';
protected $fillable = [
'tipo', 'nome',
];
public function pagamento():hasMany{
return $this->hasMany('App\Pagamento', 'plano_contas_id');
}
public function recebimento():hasMany{
return $this->hasMany('App\Recebimento', 'plano_contas_id');
}
}
MODEL RECEIPTS
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Cliente;
use Planoconta;
class Recebimento extends Model
{
//
protected $table = 'recebimentos';
protected $fillable = [
'data_emissao','data_venci','documento','parcela', 'valor', 'cliente_id','plano_contas_id', 'descricao',
];
public function cliente():BelongsTo{
return $this->BelongsTo('App\Cliente');
}
public function planoconta():BelongsTo{
return $this->BelongsTo('App\Planoconta');
}
}
HTML
@foreach($recebimentos as $recebimento)
<tr class="itemRecebimento{{$recebimento->id}}">
<td>{{$recebimento->id}}</td>
<td>{{$recebimento->data_receb}}</td>
<td>{{$recebimento->valor}}</td>
<td>{{$recebimento->cliente()->get()->first()->nome}}</td>
<td>{{$recebimento->planoconta()->get()->first()->nome}}</td>
<td><button class="btnOpenUpdateRecebimento btn btn-info" data-id="{{$recebimento->id}}" data-data_receb="{{$recebimento->data_receb}}" data-valor="{{$recebimento->valor}}" data-cliente_nome="{{$recebimento->cliente()->get()->first()->nome}}" data-cliente_id="{{$recebimento->cliente()->get()->first()->id}}" data-plano_contas="{{$recebimento->plano_contas}}" > <span class="fa fa-pencil"></span></button>
<button class="delete-recebimento btn btn-danger" data-id="{{$recebimento->id}}" data-data_receb="{{$recebimento->data_receb}}" data-valor="{{$recebimento->valor}}" data-cliente_nome="{{$recebimento->cliente()->get()->first()->nome}}" data-cliente_id="{{$recebimento->cliente()->get()->first()->id}}" ><span class="fa fa-trash"></span></button>
</td>
</tr>
@endforeach
CUSTOMER MODEL WHICH IS WORKING AND IS EXACTLY EQUAL
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\hasMany;
use Recebimento;
class Cliente extends Model
{
////
protected $table = 'clientes';
protected $fillable = [
'nome', 'cpf', 'endereco', 'numero', 'cep', 'complemento', 'bairro', 'celular', 'telefone', 'cidade', 'estado', 'email',
];
public function recebimento():hasMany{
return $this->hasMany('App\Recebimento', 'cliente_id');
}
}