@laravel_pro

Страница 1993 из 2014
Остап
23.10.2018
16:40:13
ооо, создалось

Сергей
23.10.2018
16:41:26
Подскажите можно ли как то создать записи в редис для Post::find($id)->comments ? чтобы тянуть из редис, а не из базы?

Vadym
23.10.2018
16:42:45
JWT auth
https://github.com/tymondesigns/jwt-auth эта библиотека?

Остап
23.10.2018
16:42:59
Google
Vadym
23.10.2018
16:44:00
Да
вы ее использовали?

Vadym
23.10.2018
16:47:02
Сергей
23.10.2018
16:47:39
кэшировать запись в редис или именно создать только в редис?
кешировать связанные сущности требуется

Vadym
23.10.2018
16:49:43
кешировать связанные сущности требуется
$value = Cache::remember('users', $minutes, function () { return DB::table('users')->get(); }); так не подходит?

Сергей
23.10.2018
16:50:20
У 4 уровня вложености, поэтому не нужно из модели юзать как то)

lang->levels->lessons->tasks грубо говоря. в итоге у меня получается около 10к tasks и нужно это хранить в редис чтобы каждый раз не собирать эту ерунду. Но при этом у каждого. task есть pivot с юзером

но пивот может быть не у каждого пользователя

Alexandr
23.10.2018
17:01:12
Вечер добрый, кто-нибудь работал с Paypal Api? Интересует отличие Billing Plans и Billing Agreements не очень разберу. Надо делать и план и соглашение?

Сергей
23.10.2018
17:11:26
$value = Cache::remember('users', $minutes, function () { return DB::table('users')->get(); }); так не подходит?
самое интересное, что вот так он всё равно быстрее не отдаёт данные)

Google
Сергей
23.10.2018
17:12:55
а ключ какой?
ну я исправил под себя

Vadym
23.10.2018
17:14:03
ну я исправил под себя
проверял, точно из кэша тянет, а не из бд? у меня были проблемы с ключем, с одним работает, с другим только из бд тянет

Сергей
23.10.2018
17:14:16
только я не так делал return DB::table('users')->get(); а через связь

да точно тянет из кеша

Илья
23.10.2018
17:14:29
$value = Cache::remember('users', $minutes, function () { return DB::table('users')->get(); }); так не подходит?
мне кажется кешировать результат такого лёгкого запроса особого смысла нет

Сергей
23.10.2018
17:15:25
мне кажется кешировать результат такого лёгкого запроса особого смысла нет
$value = Cache::remember('tasks', 10, function () { return LevelResource::collection(Level::where('language_id', 1)->where('published', 1)->get()->sortBy('sort')); }); return $value;

у меня здесь тянется 5к сущностей из бд

у меня это всё очень долго собирает(

порядка 580 запросов в бд делает

Максим
23.10.2018
17:16:45
всем привет, ребят! постигаю laravel. много гуглю, но нашёл только одно странное решение на свой вопрос и всё. ответьте на нубский вопрос, пожалуйста. есть m2m связь user - language, в pivot-таблице есть level_id (уровень знания языка пользователем) - внешний ключ. как сделать чтоб работало $userLang->pivot->level->name?

Сергей
23.10.2018
17:16:52
я пытался уже оптимизировать как только можно, но всё равно каждая запись из 5к имеет pivot с юзером при выдаче(

Илья
23.10.2018
17:17:20
порядка 580 запросов в бд делает
так лучше от n+1 попробовать избавиться

Сергей
23.10.2018
17:17:38
Сергей
23.10.2018
17:18:42
у level связь с юзером?
нет, там далеко до юзера levels->lessons->tasks tasks с юзером

Илья
23.10.2018
17:18:55
не совсем понял тебя?
ленивую загрузку использовать тут надо

Сергей
23.10.2018
17:19:44
Илья
23.10.2018
17:19:59
Google
Сергей
23.10.2018
17:20:36
public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->name, 'title' => $this->title, 'description' => $this->description, 'image' => $this->image, 'language' => $this->language, 'language_id' => $this->language_id, 'sort' => $this->sort, 'paid' => $this->paid, 'published' => $this->published, 'lessons' => $this->when($request->get('lessons'), function () { return LessonResource::collection($this->sections->sortBy('sort')); }), 'percent' => $this->levelPercent ]; }

public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->name, 'title' => $this->title, 'hint' => $this->hint, 'level_id' => $this->level_id, 'sort' => $this->sort, 'published' => $this->published, 'video' => $this->video, 'tasks' => $this->when($request->get('tasks'), function() { return TaskIndex::collection($this->lessons->sortBy('sort')); }), 'percent' => $this->user_percent ]; }

это lessons

покажи
lessons получается 50 в каждом level. А в каждом lessons 50-60 tasks

Adel
23.10.2018
17:23:06
надо сначала сфомировать запрос. исходя из реквест параметров

с нужными with

не надо это разруливать в ресурсах

Илья
23.10.2018
17:23:21
return LevelResource::collection(Level::with('lessons.tasks')->where('language_id', 1)->where('published', 1)->get()->sortBy('sort'));

Сергей
23.10.2018
17:23:22
Единственный минус всего, что сейчас всё отдается сразу. Была идея переделать динамическую подгрузку конечно, но думаю может это может тимизировать

с нужными with
ооо, что то подобное я делал, точно

Илья
23.10.2018
17:25:07
блин, точно, надо попробовать)
with - это как раз и есть ленивая загрузка помогает избежать n+1 query problem

Илья
23.10.2018
17:25:54
сколько занимает по времени?

я немного запутался в твоих связях

как связаны sections, lessons, tasks, levels?

Сергей
23.10.2018
17:28:37
как связаны sections, lessons, tasks, levels?
levels->lessons(это sections)->tasks(lessons) тут напутано конечно(

Google
Alexander
23.10.2018
18:35:46
Подскажите что делать пж, не могу подключиться к БД на локале

В терминале сделал все как надо, а на SqlPro жалуется на caching_sha2_password

Vladimir
23.10.2018
18:36:52
Всем привет! А кто-нить логирует медленные запросы к БД в самой ларе?

Сергей
23.10.2018
18:43:54
и не очень понятно почему в поле tasks возвращается коллекция lessons
блин хз че делать( как можно оптимизировать еще это всё?(

Илья
23.10.2018
18:44:40
блин хз че делать( как можно оптимизировать еще это всё?(
так почему в поле tasks возвращается коллекция lessons? это так и надо?

Сергей
23.10.2018
18:46:08
Сергей
23.10.2018
18:47:21
Илья
23.10.2018
18:48:30
покажи LessonResource

и TaskIndex

Google
Сергей
23.10.2018
18:52:15
и TaskIndex
https://gist.github.com/krosh961/a7fabf068c3c091931364902afe4bf86

Илья
23.10.2018
18:54:56
https://gist.github.com/krosh961/a7fabf068c3c091931364902afe4bf86
закинь туда еще LessonResource и Template

без них не видно полной картины

Сергей
23.10.2018
18:55:32
Илья
23.10.2018
18:56:07
не обратил внимание, что ты алиас классу дал, увидел

Илья
23.10.2018
18:57:05
в Template поле fields - это релейшн или просто столбец БД?

Maxim
23.10.2018
18:57:11
Ребят, добавляю в env поле API_KEY={value} В итоге через env() не могу получить, возвращает null, config:cache делал

Илья
23.10.2018
18:57:36
Maxim
23.10.2018
18:57:53
Maxim
23.10.2018
18:58:03
Понял, спасибо

Илья
23.10.2018
19:00:31
@kardashov пробуй ->with('sections.lessons.template')

то есть как-то так по итогу получится return LevelResource::collection(Level::with('sections.lessons.template')->where('language_id', 1)->where('published', 1)->get()->sortBy('sort'));

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