@laravel_pro

Страница 1536 из 2014
[Anonymous]
28.06.2018
06:47:29
не для каждого

https://stackoverflow.com/questions/43097559/laravel-eloquent-limit-results-for-relationship

Нашел только такой бредовый вариант, если записей много он не катит

Vladimir
28.06.2018
06:49:06
счас проверю свой вариант

Google
[Anonymous]
28.06.2018
07:15:09
Я так понимаю в цикле херачить и кэшировать придется

Для каждого поста

Vladimir
28.06.2018
07:15:41
прервали сейчас возвращаюсь, не ту таблицу выбрал там многие ко многим бфли

[Anonymous]
28.06.2018
07:15:55
https://www.reddit.com/r/laravel/comments/33ebck/limiting_eager_loading/

Да вот тема по этой задачке

Vladimir
28.06.2018
07:20:23
ага сработало как только для первой ну сзначит попробую в модели пошелудить

[Anonymous]
28.06.2018
07:23:22
ага сработало как только для первой ну сзначит попробую в модели пошелудить
не для первой, а всего выбирается 3 записи понимаешь? Просто на другие не хватает..

Vladimir
28.06.2018
07:27:44
ну да она второй запрос преобразует в бред select * from articles where articles.name_id in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) limit 2

Владимир
28.06.2018
07:33:23
Народ, разбирается кто в nginx? Сейчас он определяет что нужно дергать файл через пхп фпм так - location ~ \.php$ Как мне написать, что нужно дергать все файлы .php , но не по урлу /media?

Maksim (Ellrion)
28.06.2018
07:50:29
не для первой, а всего выбирается 3 записи понимаешь? Просто на другие не хватает..
В твоей задаче дело даже не в орм. Ты попробуй ее и на чистом sql решить. Там тоже нифига не тривиально это

[Anonymous]
28.06.2018
07:51:01
Maksim (Ellrion)
28.06.2018
07:51:28
Ну не единственное. У тебя бд какая?

Google
[Anonymous]
28.06.2018
07:52:19
а на какой это можно сделать нормально

Kirill
28.06.2018
07:54:10
никак не пойму как updateOrCreate может возвращать ERROR: duplicate key value violates unique constraint если он и должен с этим бороться

Dmitry
28.06.2018
07:54:58
никак не пойму как updateOrCreate может возвращать ERROR: duplicate key value violates unique constraint если он и должен с этим бороться
ну у тебя стоит уник на поле которе не праймари кей. и ты пытаешься его вставить.....

такое же

Maksim (Ellrion)
28.06.2018
07:55:29
Можешь взять залоадить только id связанных записей. Это изи. Потом пройти по ним взяв только не более трёх и уже залоадить жаднолениво с условием на whereKeys Телодвижений много но эффективнее чем цыкл и кэш

Kirill
28.06.2018
07:57:27
такое же
и как быть?) составной праймери?

Maksim (Ellrion)
28.06.2018
07:57:55
то есть при добавлении комента нового привязывать его если в отдельной таблице?
На структуру и связи не влияет алгоритм. Это только стратегия выборки

Dmitry
28.06.2018
07:58:03
и как быть?) составной праймери?
$user = User::find($id); if(!$user){ $user = new User(); }

Maksim (Ellrion)
28.06.2018
07:59:01
Ща до компа доберусь кину пример.

[Anonymous]
28.06.2018
07:59:14
Ща до компа доберусь кину пример.
ты хочешь чтобы я все коменты сразу выбрал?

айдишники

Maksim (Ellrion)
28.06.2018
07:59:33
Да, только их ид

[Anonymous]
28.06.2018
07:59:47
Да, только их ид
ну так у меня их сотни тысяч

Kirill
28.06.2018
08:00:20
$user = User::find($id); if(!$user){ $user = new User(); }
мне нужно одним запросом, а в этом примере сначала поиск, потом создание

Maksim (Ellrion)
28.06.2018
08:00:20
Для 10 постов? Ты льстишь своей системе)

[Anonymous]
28.06.2018
08:02:28
Для 10 постов? Ты льстишь своей системе)
ну во первых их будет 50.. А во вторых да, там на каждую запись примерно коментов 300 получается

Google
Maksim (Ellrion)
28.06.2018
08:03:46
ну во первых их будет 50.. А во вторых да, там на каждую запись примерно коментов 300 получается
ты хочешь сказать что такая мелочь как выбрать даже 15к id будет дороже 50 запросов в бд?

Dmitry
28.06.2018
08:05:25
мне нужно одним запросом, а в этом примере сначала поиск, потом создание
но вообще посмотри как работает updateOrCreate. там внутри так же... вначале запрос на существование, а потом обновление... это всего лишь сахар...

[Anonymous]
28.06.2018
08:06:30
ты хочешь сказать что такая мелочь как выбрать даже 15к id будет дороже 50 запросов в бд?
кстати а куда лучше выносить такие вот штуки подальше от контроллера?

Dmitry
28.06.2018
08:08:30
ой, Николаю хотел ответить ?

Maksim (Ellrion)
28.06.2018
08:09:07
[Anonymous]
28.06.2018
08:09:26
ой, Николаю хотел ответить ?
ну а какой выход если к примеру было бы 100000 записей ) Серьезно, давайте подумаем глобально

Просто интересно что в таких случаях делать если не в цикле запросы херачить

Dmitry
28.06.2018
08:09:53
блин, я честно говоря ток присоеденился к разговору)) и не читал с чгео вы начали )

[Anonymous]
28.06.2018
08:10:22
Ребята подскажите мне, как изменить версию php в kali?

[Anonymous]
28.06.2018
08:11:04
скоуп можно или макрос билдера можно
что за макрос? типа отдельный класс который с запросом тупо работает?

Павел
28.06.2018
08:11:08
можно в lumen, получить stream, из storage?

[Anonymous]
28.06.2018
08:12:46
Maksim (Ellrion)
28.06.2018
08:13:42
что за макрос? типа отдельный класс который с запросом тупо работает?
а да про отдельный класс (квери обжект) я и забыл. но нет макрос это просто возможность запихать в билдер метод "налету" https://github.com/laravel/framework/blob/5.6/src/Illuminate/Database/Query/Builder.php#L23 https://github.com/laravel/framework/blob/5.6/src/Illuminate/Support/Traits/Macroable.php

Dmitry
28.06.2018
08:15:33
ну а какой выход если к примеру было бы 100000 записей ) Серьезно, давайте подумаем глобально
->with(['staffGroupRight' => function($query){ return $query->take(10); }]) а так точно не работает?

Maksim (Ellrion)
28.06.2018
08:16:50
точно)

Dmitry
28.06.2018
08:25:42
Google
Dmitry
28.06.2018
08:25:44
public function posts() { return $this->hasMany('App\Models\Post', 'cat_id')->take(4); }

[Anonymous]
28.06.2018
08:26:16
вот так должно точно заработать )
ну во первых если бы заработало, то заработало опять же в цикле, а во вторых не должно это работать (проверил)

Dmitry
28.06.2018
08:28:20
лааадно

тогда открываю последний

ну точно рабочий вариант

$users = \App\User::all(); $users->each(function($user) { $user->load('onlyFiveBooks'); });

Игорь
28.06.2018
08:30:04
Dmitry
28.06.2018
08:30:23
нет )

Admin
ERROR: S client not available

Игорь
28.06.2018
08:30:33
Че это, нет

Dmitry
28.06.2018
08:30:40
ну проверь

Игорь
28.06.2018
08:30:57
Я знаю что должно работать

Это самые азы лары

Dmitry
28.06.2018
08:31:39
Это самые азы лары
как хорошо что ты пришел и все решил...

Игорь
28.06.2018
08:32:05
Если у тебя не работает, значит ты накосячил с релейшинами

Аааа, я понял про что вы

Aibek
28.06.2018
08:37:01
сперва напишите на голом sql такую выборку)

f4rt~
28.06.2018
08:37:26
Aibek
28.06.2018
08:38:35
как зачем? они пытаются в два запроса сформировать 10 постов с 3 комментами каждый

Google
[Anonymous]
28.06.2018
08:38:45
$users = \App\User::all(); $users->each(function($user) { $user->load('onlyFiveBooks'); });
проблема в том что это не решает задачу.. Где тут limit?

Dmitry
28.06.2018
08:39:21
public function onlyFive() { return $this->hasMany('App\Models\Post', 'cat_id')->take(5); }

Aibek
28.06.2018
08:39:25
ну вот если лара не умеет этого, значит надо самому лул

Игорь
28.06.2018
08:39:32
проблема в том что это не решает задачу.. Где тут limit?
Сделай ты двумя запросами и не парься

Dmitry
28.06.2018
08:39:57
Сделай ты двумя запросами и не парься
а азами лары не справится?

Aibek
28.06.2018
08:40:00
почему в два?
ты читал сообщения ? или просто спрашиваешь?

[Anonymous]
28.06.2018
08:40:02
f4rt~
28.06.2018
08:40:06
офк читал

просто люблю проигрывать с челов

Игорь
28.06.2018
08:40:48
а азами лары не справится?
Я не хочу тестить, впадлу. Мб и справится ?‍♂

Aibek
28.06.2018
08:41:05
мне кажется тебе надо бан дать, тролю

f4rt~
28.06.2018
08:41:28
может и надо, хз

от этого твои советы лучше не станут, это точно

Aibek
28.06.2018
08:42:49
то что я сказал что лимит не работает на релейшн - это не лучше? а то тут пытаются "чтобы заработал"

Aibek
28.06.2018
08:44:44
знал бы, сказал бы)

я предлагаю ручками sql написать, попробовать, чтобы в цикле не работать но как выше сказали, тяжко такой sql написать для меня лично тяжко)

Maksim (Ellrion)
28.06.2018
08:47:39
Это самые азы лары
значит ты их плохо знаешь

Страница 1536 из 2014