Задать вопрос
  • Не загружаются картинки в Laravel по ajax - где я ошибаюсь?

    neuotq
    @neuotq
    Прокрастинация
    Начнем с того что ты не указал имя файла ну и в Laravel есть система работы с файлами.
    Так же не известно что у тебя на фронтенде, настроена ли правильно форма и передача csrf для ajax запросов
    примерно вот так должно работать:
    //photo - имя поля
    if ($request->hasFile('photo')) {
                $files = request()->file('photo');
                foreach ($files as $file) {
                   //вернет имя файла, как он будет сохранен. 
                    $name = $file->store('photo','public')]);               
                }
    }

    Файлы загрузятся в /storage/app/public/photo( см первый параметр $file->store, это папка куда, второй тип хранения, для всех или другой), чтобы прокинуть ее в public для доступа извне, есть команда php artisan storage:link - создания симлинка на эту папку в публичной диреткории.
    Кароче, читай документацию по файловой системе, там все просто.
    Ответ написан
    3 комментария
  • Как скачать пропатченый файл с гитхаба?

    neuotq
    @neuotq
    Прокрастинация
    Кнопка View в верхней правой части текстового поля.
    Ответ написан
    1 комментарий
  • Почему не срабатывают изменения через browserSync?

    neuotq
    @neuotq
    Прокрастинация
    Вы смотрите за изменениями в scss, а как же сам css который компилица после изменений в scss. Вот и выходит что дефакто ничего не поменялось и страницу перегружать не нужно. Добавляй слежение за итоговым скомпилированным css или папокй где он лежит, смотря что за проект будет.
    UPD: выше пропустил, что у вас настроена инъекция.
    мб взять из оригинала и под вас передалать:
    var gulp        = require('gulp');
    var browserSync = require('browser-sync').create();
    var sass        = require('gulp-sass');
    
    // Static Server + watching scss/html files
    gulp.task('serve', ['sass'], function() {
    
        browserSync.init({
            server: "./app"
        });
    
        gulp.watch("app/scss/*.scss", ['sass']);
        gulp.watch("app/*.html").on('change', browserSync.reload);
    });
    
    // Compile sass into CSS & auto-inject into browsers
    gulp.task('sass', function() {
        return gulp.src("app/scss/*.scss")
            .pipe(sass())
            .pipe(gulp.dest("dist/css"))
            .pipe(browserSync.stream());
    });
    
    gulp.task('default', ['serve']);
    Ответ написан
    Комментировать
  • Как проверить файлы на исправность перед резервным копированием?

    neuotq
    @neuotq
    Прокрастинация
    Я думаю подойдет проверка на целостность CRC. Это правда бывает ресурсоемко, но достаточно надежный метод.
    Таким образом вы можете создавать контрольные суммы с самого начала, когда известно что файл хороший, а потом сверять при создании резервной копии, так же полезно сверять и восстановлении резервной копии.
    Ответ написан
    2 комментария
  • Как перенести сайт с tilda на свой хостинг?

    neuotq
    @neuotq
    Прокрастинация
    У них в пакете Business есть возможность сохранить исходный код, а иначе только ручное копирование (ну или с помощью программ что закачивают сайт целиком, но сути это не меняет).
    Ответ написан
    Комментировать
  • Как добавить данные в JSON колонку в БД без SELECT'a?

    neuotq
    @neuotq
    Прокрастинация
    Раз возникла такая проблема, это повод задуматься о правильности выбора структуры БД, конкретно о том стоит ли так хранить messages. Но в любом случае PostgreSQL изначально по задумке сделан так что обновление поля это всегда его полная перезапись, таким образом вам в любом случае нужно прочитать оттуда чтобы не потерять предыдущие записи.
    Ну и все же есть рекомендации по использованию этого типа JSON в постгресе, вы уверены что ваша реализация следует им?
    Ответ написан
  • Чем отличаются web маршруты от api в Laravel?

    neuotq
    @neuotq
    Прокрастинация
    Так как создание API достаточно популярная задача, для удобства разработчика,, минификации доп проверок и лишнего кода их вынесли как отдельную сущность. Через файлы конфигурации выходит легко разграничить Middlware, аутентификации и тп, да и в целом разделения логики работы приложения стало легче.
    Ах ну и да, по умолчанию у api отключены функции состояния приложения(грубо говоря сессии и ко), которые в случае API не нужны, так как здесь не непосредственное юзер обращается, а некое приложение клиент, которое на себя берет все мороку по передачи и поддержки состояний, если это необходимо.
    Ответ написан
    Комментировать
  • Почему не работает битбакет?

    neuotq
    @neuotq
    Прокрастинация
    Если ты в Крыму, то он блокирует доступ с большинства крымских ip. Используй VPN
    Ответ написан
  • Есть какое-то полезное применение для ASIC USB-свистка?

    neuotq
    @neuotq
    Прокрастинация
    Можно создать на них обучающую платформу про блокчейн, прям полного цикла. Создать свою валюту, показать майнинг, прям рассказать и в живую показать создание новых валют, передачу между кошельками, алгоритмы и тд тп. Записать ролики, выложить на youtube.
    Сейчас есть много разных обучающих штук, но в виде эмуляции, не интересно.
    А так можно создать свой методический курс, продавать даже.
    Ну а из пассивных, можно условно говоря участвовать в "биткоин лотерее", погугли на этот счет в английском инете.
    Ответ написан
    Комментировать
  • Можно ли ограничить количество значений input datalist'ом?

    neuotq
    @neuotq
    Прокрастинация
    Советую взглянуть на Select2, в целом хороший плагин для похожих целей.
    Насчет исправления опечаток тут сложнее, нужно писать свою логику нечеткого поиска(либо искать готовые решения), это достаточно серьезная задача и скорее всего ее нужно будет подбивать под ваш конкретный случай.
    Хотя конечно можно обойтись тупым простым алгоритмом в который будет хард код с забитыми самыми популярными опечатками и автоматическим поиском альтернатив при нулевом результате после ввода пользователя, но опять таки, городов много, варианты на многие сочетания обязательно найдутся.
    Ответ написан
    Комментировать
  • Как генерировать количество блоков в зависимости от val?

    neuotq
    @neuotq
    Прокрастинация
    В цикле в переменную собираешь нужное количество содержимого, потом добавляешь во внутреннее содержание целевого блока:
    ***
    //Лучше скешировать, чтобы меньше было обращений к DOM
    var count = $val1.val();
    var imgs = '';
    for (var i = 0; i < count; i++) {
                    imgs = imgs + '<img src="img.jpg" alt="">';
                }
     $(id блока).html(imgs);
    Ответ написан
    Комментировать
  • Не запориться ли жесткий диск?

    neuotq
    @neuotq
    Прокрастинация
    Так как устройство механическое причина щелчка может быть что угодно, вполне возможно так и должно быть. Ну и конечно в современных жестких дисках уже давно есть защита от физического повреждения при аварийном отключении питания. Ну и тем более вы выключаете компьютер правильно, а значит головки успевают вернуться на место.
    Короче говоря если есть беспокойство, проведите все тесты вроде S.M.A.R.T. Так же можно погуглить похожие жалобы на щелчки на вашей модели диска (не забудьте так же проверить англоязычные запросы), вполне возможно это норма. Лично я не раз встречал различные "страшные" звуки от ЖД.
    Ответ написан
    Комментировать
  • Как выполнить событие при повторном нажатии клавиши?

    neuotq
    @neuotq
    Прокрастинация
    Кстати, все эти состояния тд, одна из причин зачем придумали Ангуляры, Реакты и тд.
    А вам можно посоветовать например проверять значение 'wdth.style.width' перед его установкой.
    Добавьте условие, если 50%, то вы ставите 80% и наоборот.
    Ответ написан
    3 комментария
  • Как понять докер, если ничего не понятно?

    neuotq
    @neuotq
    Прокрастинация
    С Докером все просто, нужно только немного повернуть устоявшуюся логику в мозгах.
    Основная суть и идея это запуск каждого приложения (php, mysql и тд) в своем контейнере. При этом сам php будет думать что запущен как всегда в обычной полноценной ОС. Поэтому контейнер собирают так, чтобы удовлетворить минимальные требования программы которую он будет содержать.
    Вот так ты и запускаешь кучу контенейров и у тебя выходит сухогруз(у докера там кит) с контейнерами. Зачем это все? Для облегчения администрирования и обновления ПО, а так же для минимизации издержек при глюках/падения какой-либо программы.
    Все контейнеры максимально независимы друг от друга, при этом есть механизм когда контейнер завист от другого. Например контейнер phpmyadmin, нет смысл запускать без контейнера mysql или mariadb, работать он не будет.
    Общение происходит в основном через сеть, поднимается внутренняя сеть. Так же конечно через диск, все предусмотрено.
    Когда все сделано как нужно, с системного администратора снимается гигантский труд по отслеживанию обновлений, совместимости этих обновлений и тд.
    Нужна тебе версия php5.6, запустил коннтейнер с ней, нужна php7.1, запустил его, при этом не нужно никаких приключений с обновлением кучи пакетов, возможных конфликтов с другими нужными программами и тд.
    Так же удобно решаются вопросы масштабирования, появляются мелкие удобные бонусы по дополнительной автоматизации , уменьшаются риски падения ОС в целом, падает если что только контейнер и тд и тп, в результате есть реальная возможность даже небольшим проектам добиться у себя около нулевого даунтайма.
    Вот еще послушай Кирилл Мокевнин из Hexlet пытается понятным языком рассказать что это и зачем. И кстати он делает упор на понимания зачем понадобилось думать и какие проблемы решали когда пришли к Докеру, это ключ к пониманию всего другого.
    PS кстати и сам Hexlet крайне советую, они наверное лучшие в рунете для начинающих программистов
    Ответ написан
    1 комментарий
  • Как проверить get параметр в роуте?

    neuotq
    @neuotq
    Прокрастинация
    Итак начнем, в первом случае
    Route::get('catalog/{mode?}', 'CatalogController@index');
    у тебя все же используется переменная в качестве параметра роутера(пути), знак вопроса говорит нам о том что он опционален, может быть, а может и не быть. Ну и да по факту это часть get запросов.
    Далее, в целом читать это.
    Можешь воспользоваться хелпер функцией request():
    Где-то в теле контроллера SettingController, в теле метода index
    ***
    $mode = request()->mode;
    ***

    А вообще зачем тебе так?
    Ответ написан
    2 комментария
  • Как бы вы решали данную задачу (ротация рекламы двух типов)?

    neuotq
    @neuotq
    Прокрастинация
    Используй куки.
    База данных и прочее нужны только для дополнительной аналитики, поэтому если нужно можешь и ее прикрутить.
    А так пиши в куки количество просмотров заказной рекламы, а при заходе пользователя в зависимости от значения выбирай что показывать.
    Ответ написан
    2 комментария
  • Как сделать 3 различных группы пользователей в Laravel?

    neuotq
    @neuotq
    Прокрастинация
    Если вас беспокоит конкретно Passport, то можно пойти путем ввода системы ролей для пользователей.
    Есть например интересный пакет для организации ACL https://github.com/spatie/laravel-permission , тогда все пользователи будут в одной таблице, а далее вы просто распределяете роли и/или права каждому пользователю.
    Ответ написан
    Комментировать
  • Ребят нужны те кто с опытом, никак не могу определится писать на чистом или фреймворке PHP?

    neuotq
    @neuotq
    Прокрастинация
    Если вы при использовании фреймворка будете понимать как он работает, то это ничего страшного и даже хорошая практика. Тот же Laravel полный opensource, используешь какую либо часть, всегда можно начтаь изучать сам код непосредственно, читать документацию, блоги разработчиков, где и почему какие практики были использованы, а почему не были.
    Короче говоря в любом случае все зависит от вас и вашего желания учится. Бери фреймфорк, строй сайт, видишь интересный инструмент, интересно как он работает можно идти в код посмотреть.
    В большинстве ныне популярных фремфорках кодстайл на уровне, заодно и пркоачается этот навык.
    Кстати, можешь попробовать начать подключать к своему проекты компоненты того же Symfony(он и в Laravel активно используется), и потихоньку заменять ими свои велосипеды, благо у Symfony все устроено так что почти все можно использоваться независимо друг от друга, чем пользуются множество крупных php проектов.
    Ответ написан
    2 комментария
  • Как на одной linux-машине запустить несколько сервисов, но так, чтобы каждый сервис имел уникальный ip?

    neuotq
    @neuotq
    Прокрастинация
    Все правильно что вы хотели пойти оп пути с Докер, советую все же изначально потратить на него время, зато в будущем сэкономите с лихвой. То что каждая штука ставится со свой Java это мелочь, более того даже плюс, если в будущем у каждой из штук будут различные требования к ней.
    Короче говоря, советую один раз заморочиться, поставить и настроить Docker, поднять все вам нужные сервисы, поднять так же докер Nginx, настроить там обработку ваших внутренних доменн имен чтобы ссылались нанужный сервис, а в локальной сети либо поднять свой ДНС, либо у каждого прописать в hosts соответсвие домена (например upsource) и айпишника вашей линкс машины. Ну а если она в интернете, то легче будет через поддомены сделать.
    Короче говоря, путь с Докером на сегодняшний момент абсолютно верный и сэкономит вам в будущем огромное количество времени поддержки и развития ваших штук.
    Ответ написан
    Комментировать
  • Какой язык программирования учить для успешного поиска работы за рубежом?

    neuotq
    @neuotq
    Прокрастинация
    На самом деле любой, нов последние месяцы в развитых странах с высоким доходом резко набирает популярность Пайтон (ну да это косвенные данные от Стаковерфлоу). Это не значит что начав с ним придешь к успеху, все же слишком много других параметров. Область применения например, в отличии от PHP, который в основном используется в вебе, Пайтон широко используется в разных местах.
    Ну а в целом, все же нужно выбирать исходя из своих способностей/желаний направление, а уэе затем лучший язык программирования(и другие иснтрументы) для этого направления.
    Ну например любишь Большие Данные(Big Data), там ка краз таки Пайтон имеет сильные позиции(даже сильнее более подходящего R), так уж сложилось что под Пайтон было написано огромное число библиотек + он дефакто стандарт в западных ВУЗах, вот и вышло что легче и быстрее стартануть в этой области с ним.
    Короче к чему я это, успешным можно стать в любой области с любым языком программирования, главное будь профи в этом деле.
    Ответ написан
    Комментировать