J'ai créé ma migration en utilisant la commande artisan
>>> User::find(1)->player; => null
Ma migration ressemblait alors à ceci:
class Player extends Model
{
protected $fillable = ['user_id', 'username'];
public function user()
{
return $this->belongsTo('App\User');
}
}
Ce qui ne m'a laissé aucune erreur quand j'ai exécuté
php artisan migrate
J'ai ensuite mis à jour mon modèle de lecteur App / Player.php pour inclure les éléments à remplir et une relation un à un
XXX
J'ai ensuite exécuté l'artisan Tinker et ma sortie lorsque j'essaye d'accéder au modèle de joueur est-ce
public function up()
{
Schema::create('players', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('user_id')->index();
$table->foreign('user_id')->references('id')->on('users')->onDelete$
$table->string('username');
$table->timestamps();
});
}
Que me manque-t-il?
3 Réponses :
Avez-vous effectué la connexion inverse?
Voici le code de relation
public function player()
{
return $this->hasOne(Player::class);
}
Je ne pense pas, ce que j'ai mis dans ma question est tout ce que j'ai fait
public function player () {return $ this-> hasOne ('App \ Player'); }}
Ou quelque chose du genre
public function user()
{
return $this->belongsTo('App\User','id' */foreign_key */ ,'user_id'*/owner_key*/);
}
i think you forgot to specify the owner_id,
if you dont specify the owner_key of belongsTo the default belongsTo getting is the model id.
Modèle utilisateur
public function user(){
return $this->belongsTo('App\User');
}
Modèle de joueur
public function player(){
return $this->hasOne('App\Player');
}