Size: a a a

2020 March 03

AI

Alexey Imsha in Laravel Pro
Ребят, подскажите  как cделать подобное:

public function phone()
{
       return $this->hasOne('App\Phone')->where('blabla_id', $this->relationOne->relationTwo->blabla_id);
}

т.е. где в конструкции where используется цепочка отношений от этой же модели
источник

DA

Dave Aios in Laravel Pro
Alexey Imsha
Ребят, подскажите  как cделать подобное:

public function phone()
{
       return $this->hasOne('App\Phone')->where('blabla_id', $this->relationOne->relationTwo->blabla_id);
}

т.е. где в конструкции where используется цепочка отношений от этой же модели
упоролся?)
источник

AI

Alexey Imsha in Laravel Pro
ну
источник

DA

Dave Aios in Laravel Pro
вот эта phone( где находится? это контролер или это релейшн?
источник

AI

Alexey Imsha in Laravel Pro
Модель. Eloquent.
Код для примера взял из документации.
источник

pf

public function in Laravel Pro
Видали как парень кодит на телефоне через клаву прямо в метро?
источник

pf

public function in Laravel Pro
источник

u

upside in Laravel Pro
Слепая печать даже на экран не смотрит)
источник

k

karmay in Laravel Pro
Ломает WiFi, на мобиле Kali
источник

u

upside in Laravel Pro
WiFi в Пентагоне
источник

pf

public function in Laravel Pro
Отрубаться от WiFi надо срочно
источник

А

Андрей in Laravel Pro
Андрей
Привет, есть вопрос к шарящим людям

У меня имеется три таблицы
users
- id, role_id

forecasts
- id, user_id, event_id, coefficient, bet

events
- id, status

Мне нужно сформулировать запрос на получения списка пользователей и добавить в полученные результаты к каждому пользователю поле ROI

Т.е. хочу что-то такое

USER::where('role_id', 2)
->добавитьКолонку ROI которая получается из результатов :

(   (Cумма(bet * coefficient) - сумма(bet) ) WHERE events.status = 2   )
/
Сумма(bet) со всеми events.status

Ну и
->groupBy('users.id')

Как правильно составить такой запрос?😅
В продолжение этого, запрос на SQL составил

SELECT DISTINCT users.*, 
(SELECT SUM(forecasts.bet * forecasts.coefficient) - SUM(forecasts.bet) FROM forecasts, events where users.id = forecasts.user_id AND events.id = forecasts.event_id AND events.status = 2) / SUM(forecasts.bet) as roi
FROM users, forecasts, events
WHERE users.id = forecasts.user_id
AND events.id = forecasts.event_id
GROUP BY users.id


Можно это как-то переделать под laravel eloquent ? Чтобы не писать DB::select($query)
источник

V

Vadim in Laravel Pro
Андрей
В продолжение этого, запрос на SQL составил

SELECT DISTINCT users.*, 
(SELECT SUM(forecasts.bet * forecasts.coefficient) - SUM(forecasts.bet) FROM forecasts, events where users.id = forecasts.user_id AND events.id = forecasts.event_id AND events.status = 2) / SUM(forecasts.bet) as roi
FROM users, forecasts, events
WHERE users.id = forecasts.user_id
AND events.id = forecasts.event_id
GROUP BY users.id


Можно это как-то переделать под laravel eloquent ? Чтобы не писать DB::select($query)
Зачем?
источник

А

Андрей in Laravel Pro
Vadim
Зачем?
Нормальная практика выполнять обычный sql, а не laravel eloquent в ларе?
источник

V

Vadim in Laravel Pro
Андрей
Нормальная практика выполнять обычный sql, а не laravel eloquent в ларе?
Нормальная. Но твой запрос можно переложить на елоквент.
источник

А

Андрей in Laravel Pro
Vadim
Нормальная. Но твой запрос можно переложить на елоквент.
Хорошо, а чисто для понимания, как правильно он будет выглядеть на елоквенте?
источник

Л@

Липатов @votapil... in Laravel Pro
Ну теперь можно так делать, если я правильно понимаю)
$users = User::select([
   'users.*',
   'last_posted_at' => Post::selectRaw('MAX(created_at)')
           ->whereColumn('user_id', 'users.id')
])->get();
источник

Л@

Липатов @votapil... in Laravel Pro
Теперь и с использованием Cast для полей
$users = User::select([
   'users.*',
   'last_posted_at' => Post::selectRaw('MAX(created_at)')
           ->whereColumn('user_id', 'users.id')
])->withCasts([
   'last_posted_at' => 'date'
])->get();
источник

Л@

Липатов @votapil... in Laravel Pro
Vadim
Нормальная. Но твой запрос можно переложить на елоквент.
Несогласен. Когда у тебя работают глобальные скопы в большом количестве - безопаснее только элок исполььзовать. Чистый скуль если и использую стараюсь для отчётов
источник

V

Vadim in Laravel Pro
Липатов @votapil
Несогласен. Когда у тебя работают глобальные скопы в большом количестве - безопаснее только элок исполььзовать. Чистый скуль если и использую стараюсь для отчётов
Пдо законом запретили?
источник