モデルを保存しようとしていますが、これはリンクテーブルです。 表:外部キー付きラーベル保存モデル
Schema::create('game_has_users', function (Blueprint $table) {
$table->integer('game_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->foreign('game_id')->references('id')->on('games')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
$table->timestamps();
});
Game_Has_Usersモデル:
class Game_Has_Users extends Model
{
protected $table = 'game_has_users';
public function user()
{
return $this->hasOne('App\User', 'user_id');
}
public function game()
{
return $this->hasOne('App\Game', 'game_id');
}
}
私はゲームを保存すると、その後、Game_Has_Usersモデルは、ユーザIDとゲームIDを使用して作成する必要があります。
try {
$game = Game::create([]);
$user = User::where('name', $request->input('name'))->first();
// $game_users = Game_Has_Users::create([]);
// $game_users->user = $user->id;
// $game_users->game = $game->id;
// $game_users->save();
$test = Game_Has_Users::create([
'user_id' => $user->id,
'game_id' => $game->id
]);
return response()->json(['t' => $test, 'status' => 'ok']);
}
catch(\Exception $e) {
return response()->json(['status' => 'failed', 'message' => $e]);
}
ただし、私は常に次の応答を受け取ります:status:failed、message:[] 例外がないので、私は何が間違っていたのか分かりません。 私は、ゲームIDとユーザーIDのデフォルト値、リンクモデルを保存するためのさまざまな方法など、さまざまなアプローチを試みました。 $ game-> idと$ user-> idには、応答を送信するときに値があります。
'Game_Has_Users'はモデルであってはなりません。ピボットテーブルです。あなたはゲームとユーザーの多面的な関係を持っているので、ゲームとユーザーのモデルでそれを定義します。 – apokryfos