Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Laravel] Eloquent poprawne zwrócenie danych
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


mam takie dwie encje

  1. public function up()
  2. {
  3. Schema::create('configurations', function (Blueprint $table) {
  4. $table->increments('id');
  5. $table->date('date_from');
  6. $table->integer('race_id');
  7. $table->timestamps();
  8. });
  9. }

w modelu mam
  1. public function parameters()
  2. {
  3. return $this->hasMany('App\Models\Parameter');
  4. }

oraz listę parametrów przypisanych do danej konfiguracji
  1. public function up()
  2. {
  3. Schema::create('parameters', function (Blueprint $table) {
  4. $table->increments('id');
  5. $table->integer('configuration_id');
  6. $table->tinyInteger('day');
  7. $table->decimal('water', 8, 3);
  8. $table->smallInteger('feed');
  9. $table->smallInteger('weight');
  10. $table->decimal('downs');
  11. $table->timestamps();


pytania z założeniami:

1. Potrzebuję wyciągnąć zsumowaną pod względem ( water, feed, weight, downs ) listę parametrów należące do configuracji o race_id in (tutaj różnie może być od jednego id po kilka) + dodatkowo jak widać mogę mieć kilka konfiguracji dla danego race_id więc potrzebują wziąć tą z najnowszą datą.

  1. $configuration = Configuration::whereIn('race_id', [1, 2])->get();


może też inaczej ,..... chciałbym osiągnąć wynik, który daje np takie zapytanie:

  1. SELECT p.[DAY], SUM(p.water), SUM(p.feed), SUM(p.weight), SUM(p.downs)
  2. FROM dbo.parameters p LEFT JOIN dbo.configurations c ON c.id = p.configuration_id
  3. INNER JOIN (
  4. SELECT race_id, MAX(date_from) AS MaxDate
  5. FROM dbo.configurations
  6. GROUP BY race_id
  7. ) tm ON c.race_id = tm.race_id AND c.date_from = tm.MaxDate
  8. WHERE c.race_id IN (1,2)
  9. GROUP BY p.[DAY]
  10. ORDER BY 4;


czyli potrzebuję wybrać najnowszą konfigurację dla danego race_id. W przypadku kilku race_id wziąć najnowszą konfigurację i dodać ja do najnowszego konfiguracji z kolejnego race_id

Chciałbym to wyciągnąc ładnie ORM i nie uzywać plain query.
Czy ktoś z Was ma pomysł?

Ten post edytował john_doe 10.05.2018, 14:37:05
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:38