У меня проблемы с реализацией отношений. У меня есть таблица "match_profils" и "profils". «match_profils» содержит два внешних ключа «profils». У меня есть проблема, чтобы сделать отношения с моделями. Вот моя модель:
class MatchProfil extends Model
{
use Notifiable;
public $timestamps = FALSE;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id','profil_id2','etat',
];
public function profilEtudiant()
{
return $this->belongsTo('App\profil')->where('profil.id','=','match_profils.id');
}
public function profilRetraite()
{
return $this->belongsTo('App\profil')->where('profil.id','=','match_profils.profil_id2');
}
}
И Profil Модель:
class Profil extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'nom', 'prenom', 'mail_famille', 'telephone_famille', 'propositions_passions', 'propositions_activites','avatar','type',
];
/**
* Get the comments for the blog post.
*/
public function activites()
{
return $this->belongsToMany('App\Activite', 'activite_profil');
}
public function passions()
{
return $this->belongsToMany('App\Passion', 'passion_profil');
}
public function autrePassions()
{
return $this->belongsToMany('App\AutrePassion', 'autre_passion_profil');
}
....
public function matchEtudiant()
{
return $this->hasOne(MatchProfil::class, 'id');
}
public function matchRetraite()
{
return $this->hasOne(MatchProfil::class, 'profil_id2');
}
}
Проблема заключается в том, когда я пытаюсь сохранить матч, как это:
$match = new MatchProfil(['etat' => 'en attente']);
$profilDBEtudiant = Profil::find($profilEtudiant);
$profilDBRetraite = Profil::find($profilRetraiteMeilleur);
$profilDBEtudiant->matchEtudiant()->save($match);
$profilDBRetraite->matchRetraite()->save($match);
Поле profil_id2 остается пустым в базе данных, как я полагаю, чтобы правильно реализовать это отношение? Благодаря.