Обновление связанных моделей в Eloquent ORM - PullRequest
2 голосов
/ 13 мая 2019

Я работаю с базой данных в приложении 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();

Затем я хотел бы создать и сохранить одну точку (связанную с моим соответствием) и обновить модель соответствия, чтобы я мог вернуть ответ с фактическими точками соответствия (включая вновь созданную точку). Есть ли способ, как это сделать? Или я должен снова получить совпадение с БД? Это сделало бы два запроса к БД, так что это не очень эффективно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...