Я работаю с базой данных в приложении Laravel, используя Eloquent ORM. У меня есть два класса моделей - Match и Point. Одно совпадение имеет много точек, поэтому я определяю отношения следующим образом:
class Match extends Model {
...
public function points() {
return $this->hasMany('App\Point', 'match_id');
}
}
class Point extends Model {
...
public function match() {
return $this->belongsTo('App\Match', 'match_id');
}
}
Во-первых, я получаю одну модель соответствия из БД следующим образом. Вы также можете увидеть связанные точки, вызвав метод ->with(...)
.
$match = Match::where('id', $matchID)
->where(function ($query) use ($userID) {
$query->where("player1_id", $userID)->orWhere('player2_id', $userID);
})
->with('points')->first();
Затем я хотел бы создать и сохранить одну точку (связанную с моим соответствием) и обновить модель соответствия, чтобы я мог вернуть ответ с фактическими точками соответствия (включая вновь созданную точку). Есть ли способ, как это сделать? Или я должен снова получить совпадение с БД? Это сделало бы два запроса к БД, так что это не очень эффективно.