Size: a a a

Laravel для начинающих

2021 March 11

r

rocknrolla in Laravel для начинающих
Привет. я произвожу запись через фасад Storage Storage::put($name, $contents);, как мне при этом получить ссылку на изображение которое записалось?
источник

LD

Lugovskoy Dmitriy in Laravel для начинающих
Есть кнопка
<button type="submit" class="btn btn-info btn-sm active" name="show_item" id="show_item" data-route="{{ route('menu.show', ['menu' => $item->id]) }}" data-live="{{ $item->live }}">
   <i class="fas fa-eye"></i>
   <div class="message"></div>
</button>

Мне нужно отправить данные аяксом именно методом GET
Пишу так:
$('#show_item').on('click', function(e){
               e.preventDefault();
               let rout = $(this).data('route'),
                   live = $(this).data('live');

               $.ajax({
                   url: rout,
                   type: 'GET',
                   dataType: 'json',
                   data: live,
                   cache: false, // отключаем кэш
                   contentType: false,
                   processData: false,
                   beforeSend: function () { // Запрос начат
                       // Обезапасим от лишнего кликанья по инпутам
                       $(this).prop('disabled', true);
                   },
                   success: function (data) {
                       if (data.status == 'ok') {
                           if ($('#show_item').hasClass('active')) {
                               $('#show_item').removeClass('active').addClass('inactive');
                               $('#show_item').find('.fas').removeClass('fa-eye').addClass('fa-eye-slash');
                           }else{
                               $('#show_item').find('.fas').removeClass('fa-eye-slash').addClass('fa-eye');
                               $('#show_item').removeClass('inactive').addClass('active');
                           }
                       } else {
                           $('#show_item').find('.message').text('Что-то пошло не так, обратитесь к программисту');
                       }
                   },
                   complete: function () { // Запрос закончен
                       $(this).prop('disabled', false);
                   }
               })
               return false;
           });

Но почему-то приходит при распечатке
https://yadi.sk/i/pr1F6UUrELeyRw
источник

AH

Andrey Helldar in Laravel для начинающих
rocknrolla
Привет. я произвожу запись через фасад Storage Storage::put($name, $contents);, как мне при этом получить ссылку на изображение которое записалось?
источник

@

@Rudeey in Laravel для начинающих
Добрый день, использую Gogole2fa, могу ли я указать определенный timezone для него?
источник

AH

Andrey Helldar in Laravel для начинающих
Lugovskoy Dmitriy
Есть кнопка
<button type="submit" class="btn btn-info btn-sm active" name="show_item" id="show_item" data-route="{{ route('menu.show', ['menu' => $item->id]) }}" data-live="{{ $item->live }}">
   <i class="fas fa-eye"></i>
   <div class="message"></div>
</button>

Мне нужно отправить данные аяксом именно методом GET
Пишу так:
$('#show_item').on('click', function(e){
               e.preventDefault();
               let rout = $(this).data('route'),
                   live = $(this).data('live');

               $.ajax({
                   url: rout,
                   type: 'GET',
                   dataType: 'json',
                   data: live,
                   cache: false, // отключаем кэш
                   contentType: false,
                   processData: false,
                   beforeSend: function () { // Запрос начат
                       // Обезапасим от лишнего кликанья по инпутам
                       $(this).prop('disabled', true);
                   },
                   success: function (data) {
                       if (data.status == 'ok') {
                           if ($('#show_item').hasClass('active')) {
                               $('#show_item').removeClass('active').addClass('inactive');
                               $('#show_item').find('.fas').removeClass('fa-eye').addClass('fa-eye-slash');
                           }else{
                               $('#show_item').find('.fas').removeClass('fa-eye-slash').addClass('fa-eye');
                               $('#show_item').removeClass('inactive').addClass('active');
                           }
                       } else {
                           $('#show_item').find('.message').text('Что-то пошло не так, обратитесь к программисту');
                       }
                   },
                   complete: function () { // Запрос закончен
                       $(this).prop('disabled', false);
                   }
               })
               return false;
           });

Но почему-то приходит при распечатке
https://yadi.sk/i/pr1F6UUrELeyRw
Простыню кода прям в чат, скрин на яндекс.диск... Едрить)
источник

MR

Maksim Rep in Laravel для начинающих
Andrey Helldar
Третий вариант ближе к SQL структуре по архитектурному плану, проще будет мигрировать на SQL базу, если вдруг решитесь отказаться от монги.
Конкретно с Mongo не работал, лишь читал о ней, так что могу порекомендовать при выборе метода отталкиваться от того, насколько затратно будет доставать данные по юзеру из неё.

Например, если просто дёргать по id типа  DB::table('...')->where('id', $id)->first(), то норм, а если придётся получать коллекцию и перебирать её для поиска значения а-ля

$items = DB::table('...')->get();

$index->search(fn ($item) => $item->id === $id);

$item = $items->get($index);

То нах такое решение.

Исходя из этого, выбери то, которое будет проще поддерживать и проще реализовывать.
Спасибо за ответ. При 3м варианте придётся получать коллекцию и перебирать её для поиска значения
источник

r

rocknrolla in Laravel для начинающих
спасибо!
источник

AH

Andrey Helldar in Laravel для начинающих
Maksim Rep
Спасибо за ответ. При 3м варианте придётся получать коллекцию и перебирать её для поиска значения
Я не знаю как работает монга под капотом. Если как redis, то да, надо перебирать и этот метод не подходит. Но в качестве визуальной архитектуры оно похоже на SQL, когда есть таблица со строками, из которой нужно дёрнуть данные. Разница только в том, что в SQL это делает запрос на стороне БД, а в монго, могу предлоложить, такого нет, и для подобного нужно дёргать данные в приложение.
Если это так, то этот метод будет худшим среди предложенных в плане производительности и логики в целом.
источник

AH

Andrey Helldar in Laravel для начинающих
@Rudeey
Добрый день, использую Gogole2fa, могу ли я указать определенный timezone для него?
Дока что говорит?
источник

ВШ

Виталий Шутов... in Laravel для начинающих
Maksim Rep
Доброго. Нужно экспертное мнение/совет. Создаю систему на php фреймверке с использование 2х DB. Первая БД PostgreSQL а вторая mongoDB. Монго будет использоваться для "мусорных" данных. Назначения данных - большое количество однотипных данных по типу ip адресов с доменными именами + разные другие поля в зависимости от предпочтений пользователя которые будут именоваться как Листы. Есть несколько идей по этой реализации:
1) Для каждого пользователя создавать свою базу в монго именуя ее как id пользователя. Для каждого "Листа" - будет создаваться отдельная таблица(коллекция).
2) Для всех пользователей будет создана одна база но для каждого по отдельности будет создана коллекция по id пользователя в которую будут записываться "листы" вперемешку с разными идентификаторами.
3) Для всех пользователей будет создана одна база и одна коллекция куда будут записываться "Листы" с разными идентификаторами и полями - при этом дополнительные поля будут вписываться в отдельное поле как json.

Какой из выше перечисленных вариантов предпочтительней, какие есть +/- ?

Нужно учитывать что каждый пользователь может загрузить от 1 000 до 20 000 записей. Система рассчитана на аудиторию от 100 до 2000 человек.

Я склоняюсь ко 1 и 2 варианту но меня уверяют что 3 вариант оптимальный и на скорость работы системы не повлияет
Есть база данных, идеально подходящая для этой задачи - Clickhouse.
источник

MR

Maksim Rep in Laravel для начинающих
Andrey Helldar
Я не знаю как работает монга под капотом. Если как redis, то да, надо перебирать и этот метод не подходит. Но в качестве визуальной архитектуры оно похоже на SQL, когда есть таблица со строками, из которой нужно дёрнуть данные. Разница только в том, что в SQL это делает запрос на стороне БД, а в монго, могу предлоложить, такого нет, и для подобного нужно дёргать данные в приложение.
Если это так, то этот метод будет худшим среди предложенных в плане производительности и логики в целом.
Вот за это отдельное спасибо. Есть над чем подумать
источник

MR

Maksim Rep in Laravel для начинающих
Виталий Шутов
Есть база данных, идеально подходящая для этой задачи - Clickhouse.
Не знаком с данной субд - погуглю. Спасибо
источник

AH

Andrey Helldar in Laravel для начинающих
Виталий Шутов
Есть база данных, идеально подходящая для этой задачи - Clickhouse.
Мне казалось clickhouse подходит не столько для мусорных файлов, сколько для сбора аналитики. У нас для мусора redis используется с истечением срока жизни ключей.
источник

ВШ

Виталий Шутов... in Laravel для начинающих
Maksim Rep
Не знаком с данной субд - погуглю. Спасибо
Но вы ею пользуетесь ежедневно ))) Она сидит под капотом Яндекс Метрики и используется для записи логов и выборок по ним.
источник

MR

Maksim Rep in Laravel для начинающих
Виталий Шутов
Но вы ею пользуетесь ежедневно ))) Она сидит под капотом Яндекс Метрики и используется для записи логов и выборок по ним.
Не в курсе был ))) Надо почитать про нее
источник

AH

Andrey Helldar in Laravel для начинающих
Maksim Rep
Не знаком с данной субд - погуглю. Спасибо
clickhouse хорошо работает на запросах с большим количеством данных. На данный момент, судя по множеству статей, это самая идеальная БД для сбора аналитических данных и построения отчётов.
Например, если в приложении есть аудит, записывающий кто что делал (читай active log), и по нему нужно выстроить отчёт - это к clickhouse, он под это заточен.
источник

ВШ

Виталий Шутов... in Laravel для начинающих
Maksim Rep
Не в курсе был ))) Надо почитать про нее
Есть еще Тарантул кстати, тоже отечественная БД. Позиционируется как аналог Redis, но с со всеми плюшками реляционной БД.
источник

MR

Maksim Rep in Laravel для начинающих
Andrey Helldar
clickhouse хорошо работает на запросах с большим количеством данных. На данный момент, судя по множеству статей, это самая идеальная БД для сбора аналитических данных и построения отчётов.
Например, если в приложении есть аудит, записывающий кто что делал (читай active log), и по нему нужно выстроить отчёт - это к clickhouse, он под это заточен.
Звучит достаточно круто
источник

MR

Maksim Rep in Laravel для начинающих
Все, гуглю clickhouse. Спасибо, ребят
источник

AH

Andrey Helldar in Laravel для начинающих
Maksim Rep
Звучит достаточно круто
Хранение данных - mysql, postgres, mongo
Кэш, брокер сообщений, сессии, "мусор"  - redis, memcached
Логирование, отчёты - clickhouse
Поиск по базе - elasticsearch
источник