Size: a a a

2020 May 14

J

Jeen in Laravel Pro
Andrew Narolsky
здравствуйте, подскажите, если прописую через метод, то получается куча одинаковых запросов. как то нужно через жадную загрузку переписать, но не понимаю как
with
источник

EG

Egor Gruzdev in Laravel Pro
Vladimir Karamazov
Товарищи, а можно как-то реализовать балк апдейт? Чтобы можно было такие запросы делать через Eloquent/QueryBuilder?
postgresql
UPDATE users AS u
SET email = t.email, name = t.name
FROM (values (1, 'email1@gmail.com', 'Name1'), (2, 'robert@duncan.info', 'Robert') ) AS t(id, email, name) WHERE t.id = u.id;
источник

VK

Vladimir Karamazov in Laravel Pro
@KopoBko, то есть, макросом расширить билдер на условный метод bulkUpdate, строящий и выполняющий апдейт через raw expression?
источник

EG

Egor Gruzdev in Laravel Pro
Vladimir Karamazov
@KopoBko, то есть, макросом расширить билдер на условный метод bulkUpdate, строящий и выполняющий апдейт через raw expression?
уж очень данный запрос похож на одноразовые запросы, когда пытаются структуру данных в порядок привести
источник

VK

Vladimir Karamazov in Laravel Pro
На реальном проекте была такая необходимость, эндпоинту надо было сохранчть основную сущность и создавать/обновлять несколько связанных. В одном эндоинте ибо транзакцию надо было делать - целостность важна
источник

VK

Vladimir Karamazov in Laravel Pro
На зенде дело было. Решили полностью кастомным запросом
источник

EG

Egor Gruzdev in Laravel Pro
Vladimir Karamazov
На реальном проекте была такая необходимость, эндпоинту надо было сохранчть основную сущность и создавать/обновлять несколько связанных. В одном эндоинте ибо транзакцию надо было делать - целостность важна
а что мешало в одной транзакции выполнить несколько запросов?
источник

VK

Vladimir Karamazov in Laravel Pro
Ничего) не хотелось делать 50+ запросов в базу на обновление
источник
2020 May 15

МК

Максим Кавецкий... in Laravel Pro
Я смотрю уроки по впс. Какую книгу можно параллельно почитать, чтобы углубиться больше в это дело?
источник

ДК

Дмитрий Кожанов... in Laravel Pro
Максим Кавецкий
Я смотрю уроки по впс. Какую книгу можно параллельно почитать, чтобы углубиться больше в это дело?
Если я правильно понял тебя то книжку по администрированию Linux ищи
источник

S

SupportBtc in Laravel Pro
подскажите пожалуйста

это у меня констроктур jobs

   protected $productImport;

   public function __construct(ProductRepository $productImport)
   {
       $this->productImport = $productImport;
   }


теперь я хочу взывать его в другом классе передаю ему аргументом репозиторий который в jobs и у меня ошибка

Import::dispatch($this->product);



vendor\laravel\framework\src\Illuminate\Queue\Queue.php"
message: "Serialization of 'Closure' is not allowed"
источник

VK

Vladimir Karamazov in Laravel Pro
Видимо, ваш репозиторий не serializable
источник

VK

Vladimir Karamazov in Laravel Pro
Посмотрите, как сделан трейт SerializesModels, создайте свой SerializesRepositories

https://github.com/laravel/framework/blob/master/src/Illuminate/Queue/SerializesModels.php
источник

VK

Vladimir Karamazov in Laravel Pro
https://stackoverflow.com/questions/49157861/laravel-jobs-serialization-of-closure-is-not-allowed#comment85321441_49157861
It needs to serialize objects into wherever your sending the jobs so they can be reconstructed when the job runs. The Request class isn't serializable hence why you get the error. Models are serializable by default so work without problems. There's a few ways you could fix it. The obvious one is to make sure the object you pass in is serializable
источник

VK

Vladimir Karamazov in Laravel Pro
В вашем случае не реквест, а репо
источник

VK

Vladimir Karamazov in Laravel Pro
Возможно, вам подойдет просто в конструкторе джобы сделать

$this->productImport = resolve(ProductRepository::class)
источник

S

SupportBtc in Laravel Pro
Vladimir Karamazov
Посмотрите, как сделан трейт SerializesModels, создайте свой SerializesRepositories

https://github.com/laravel/framework/blob/master/src/Illuminate/Queue/SerializesModels.php
а есть пример реализации SerializesRepositories? У меня вот какой репозиторий
источник

S

SupportBtc in Laravel Pro
источник

S

SupportBtc in Laravel Pro
точнее мой репозиторий наследуется от этого класса.

class ProductRepository extends Repository
источник

AS

Andrey Sokolov in Laravel Pro
Привет всем.
Подскажите пожалуйста следующее.
Идёт поиск по БД 100к+записей.
По мимо поиск нужно получать кол-во комментариев к записям из БД Это делается за секунды.
В то время как Laravel это делает 50 секунд и более.

Я так понимаю что дела в foreach который перебирает строки в withCount.

Возможно я не прав?
А если так, тогда как ускорить эту работу, чтобы получить кол-во комментариев и не ждать так долго?
источник