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'); }