Bonjour, j'ai un soucis avec mes relations laravel 8, je ne parviens pas à accéder aux données.
Comme un exemple est plus parlant qu'une longue explication :
J'ai un model Adherent et un model TypeVoie
Un adhérent ne peut avoir qu'un seule Type de voie mais un type de voie peut avoir plusieurs adhérents.
J'ai donc créé mes models comme suit :
Dans TypeVoie j'ai mis :
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Kyslik\ColumnSortable\Sortable;
class TypeVoie extends Model
{
use HasFactory;
use Sortable;
protected $table = 'chk_typevoie';
protected $primaryKey = 'TY_ID';
public $timestamps = false;
protected $fillable = [
'TY_ID',
...
];
public function adherents() : HasMany
{
return $this->hasMany(Adherent::class);
}
}
Et dans Adherent j'ai mis :
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Kyslik\ColumnSortable\Sortable;
class Adherent extends Model
{
use HasFactory;
use Sortable;
public $timestamps = false;
protected $table = 'chk_adherent';
protected $primaryKey = 'AD_ID';
protected $fillable = [
'AD_ID',
...
];
public function typeVoie()
{
return $this->belongsTo(TypeVoie::class);
}
}
Et dans mon controller j'ai ce code :
$ads = $this->adherentRepo->getPaginate($this->nbPerPage);
foreach ($ads as $a) {
dd($a->typeVoie->TY_ID);
}
Ce que je veux
Je voudrais qu'il m'affiche l'id du type de voie peut importe son numéro.
Ce que j'obtiens
Cependant j'obtiens l'erreur suivante:
Attempt to read property "TY_ID" on null
Merci d'avance pour votre aide je ne comprends pas ce que je fais mal