Задать вопрос
  • Какие книги есть для новичков по C# в 2020?

    GavriKos
    @GavriKos
    Такие же, какие и в 2019, 2018, 2017 и так где то до 2004.
    Шарп конечно развивается, но основы языка не менялись.
    А если вы еще и новичок в целом, а не именно в шарпах (т.е. опыта нет ВООБЩЕ) - то вам все равно какой год читать.
    Ответ написан
    Комментировать
  • Посoветуйте курс по парсингу на python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Советую полноценно изучить язык путём прочтения учебника. После этого не должно быть проблем ни с парсингом, ни с чем-либо другим.
    Ответ написан
    Комментировать
  • Где найти единомышленников по веб-разработке?

    Zoominger
    @Zoominger Куратор тега Веб-разработка
    System Integrator
    Лол, фрилансер фрилансеру - конкурент и злейший враг.
    Для полезной информации есть блоги, СОФ и Тостер.
    Для личного роста кушайте больше молочных продуктов и меньше курите.
    Ответ написан
    8 комментариев
  • Как удалить файл в laravel?

    neuotq
    @neuotq
    Прокрастинация
    Чтение документации и изучение хорошей пратики всё таки немного облегчает жизнь.
    Итак.
    Хранить в БД url, как делаете вы, обычно не выгодно и неинтересно. Это нужно в исключительных случаях одно разового мини проекта, когда вы точно знаете настроки меняться не будут и файлы редактироваться не будут. Либо, в специализированных БД для кеширования результата генерации url.
    В иных случаях хранить в БД нужно имя файла. Имя файла в идеале разбить конечно, но в подавляющем числе случаев достаточно будет два поля: имя с путём + имя диска. Это закроет большинство кейсов для будущего масштабирования. Но если уж совсем лень, то имя диска тоже можно опустить, хотя я советую добавить это поле.
    Далее, ваш код:
    $path = Storage::putFile('public/img', $request->file('img'));
    $url = Storage::url($path);
    $post->img = $url;

    Меняем на более простой (хотя аналог можно и из вашего конечно сделать, убрав строчку с $url и сохраняя в модель $path)
    // file('img') - это имя файла(инпута формы например) из запроса
    // store('img') - это имя подпапки для
    // 'public' - Диск из настроек (см filesystems.php)
    $path = $request->file('img')->store('img', 'public');
    $post->img = $path;

    Теперь и удалать легко. не забываем что с файлами мы работаем(по умолчанию), относительно папки /storage/app/(слеш в начале я поставил чтобы показать что путь от корня папки с проектом)
    Поэтому, когда вы передаёте в метод удаления сгенерированный заранее url. он ничего не найдёт и не удалит.
    Но теперь мы храним как раз относительный путь файла.
    Storage::delete($post->img);
    Теперь сработает, не забываем очистить поле, после удаления, если вы при этом не удаляете сам пост.

    Далее, сам url получаем так
    $url = asset($post->img);
    Ну, или если вы делаете сразу в blade шаблонах
    <img src="{{asset($post->img)}}">
    Ну и конечно я всякие проверки и тп опустил для простоты
    Ответ написан
    Комментировать
  • На какие курсы пойти в Москве по QA engineer?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Мне посоветовали пойти на курсы

    Это вредный совет.
    Ответ написан
    5 комментариев
  • Django. Как получить записи у которых нет бронировании на заданный период?

    @deliro
    Алгоритм такой:

    1. Берёшь лист бумаги
    2. Изображаешь на нём свою задачу
    3. Напрягаешь ту штуку, в которую ты обычно ешь
    4. Она рожает решение

    Если пункт №4 не сработал — меняешь профессию
    Ответ написан
    1 комментарий
  • Как поставить KPHP и KDB?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    LinuxGod, PHP 7.x по скорости будет сопоставим с любым из имеющихся веб языков, как альтернатива kphp - phalcon php project - попытка создать модули mvc модели на более быстром Си, однако, не смотря на плюшки в виде более-менее вменяемого ооп и нормального мвц, тоже имеет ряд проблем. В частности надо будет от души потанцевать с бубном вокруг установки этой вундервафли и более-менее свежих либ под нее. В итоге на данный момент пхп 7.х вполне сопоставим по скорости исполнения чистого пыхового кода с фалконовскими сишными модулями.
    Вывод - на сегодня нет смысла юзать неподдерживаемое / малоиспользуемое гуано, когда нативный пых в принципе не сильно отстает, кроме того в вебе 99% задержек и тормозов СОВСЕМ не относятся к исполнению чистого кода, большую часть времени пых простаивает в ожидании запросов к бд и файловой системе.
    Ответ написан
    Комментировать
  • Как указать зависимость между полями?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    @admin.register(SomeModel)
    SomeModelAdmin(admin.ModelAdmin):
        def get_fields(self, request, obj=None):
            fileds = super().get_fields(request, obj)
            if obj and not obj.first_field:
                fields.remove('second_field_name')
            return fields
    Ответ написан
    3 комментария
  • Почтовый сервер (железо) и домен у разных поставщиков, как настроить MX, A, PTR записи?

    eapeap
    @eapeap
    Сисадмин, Беларусь
    Если у вас начались вопросы на этапе начальной настройки, то что же будет при эксплуатации? Спам, который посыплется к вам, ваша почта, которую контрагенты начнут считать СПАМом, ...
    Не проще ли разместить вашу почту у МЭЙЛ.РУ, Яндекса, ЖМэйла и т.п. платно либо бесплатно?
    Имел опыт и со своим "железным" почтовым сервером, и с корпоративной почтой на стороннем почтовом ресурсе - предпочитаю отдать почту "дяде" и не иметь головняка с ней.
    Ответ написан
    2 комментария
  • Что надо знать юристу в IT?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    С выявления спроса... (ничего нового)
    Ответ написан
    3 комментария
  • Как правильно экранировать символы в SQL запросы, если нужно отправить HTML-код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    HTML никак специально экранировать не нужно. И вообще ничего экранировать не нужно. Экранирование - это треш, угар, прошлый век и инъекции. Данные в БД надо просто посылать отдельно от запроса.

    Удивительно, что на этот вопрос подписалось ещё столько народу.
    Ну это я не знаю - как подписаться на вопрос "сколько будет шестью шесть?". Не "дважды два", но близко.
    Работа с БД - это самые основы пхп, которые обсосаны в каждом учебнике со всех сторон. Неужели всё так плохо, что этот вопрос вызывает столь живой интерес, чтобы попасть в список интересных на тостере?

    Причем твоя лично проблема здесь совсем не в том, "как экранировать". HTML никак особо экранировать не нужно, базе данных абсолютно всё равно, что ты внее вставляешь. Твоя проблема в том, что ты в принципе не знаешь пхп и путаешься в основах языка, используешь устаревшую версию, которая не будет работать на живом сайте. И даже самый базовый синтаксис тебя пугает. Поэтому извини, я буду писать ответ не для тебя, а для тех, кто, в который раз, задается этим вечнозеленым вопросом, но по какой-то причине не смог освоить базовые навыки работы с гуглем/яндексом.

    Чтобы вставить данные в mysql, и вообще никогда не думать ни про какое "экранирование", надо
    1. Все переменные в запросе заменить на знаки вопроса
    2. Подготовить запрос к исполнению
    3. Привязать переменные к знакам вопроса
    4. Выполнить запрос.

    Как я уже говорил, функций, которые начинаются на mysql, в языке давно нет. Остаются только те, которые начинаются на mysqli и PDO. Вот для них я и приведу примеры.

    mysqli
    $type = 'testing';
    $reporter = "John O'Hara";
    $query = "INSERT INTO contents (type, reporter) VALUES(?, ?)"; // заменем
    $stmt = $mysqli->prepare($query); // подготавливаем
    $stmt->bind_param("ss", $type, $reporter); // привязываем
    $stmt->execute(); // исполняем

    Важно! Чтобы этот код работал, сначала надо правильно установить соединение mysqli
    PDO
    $type = 'testing';
    $reporter = "John O'Hara";
    $query = "INSERT INTO contents (type, reporter) VALUES(?, ?)"; // заменяем
    $stmt = $pdo->prepare($query); // подготавливаем
    $stmt->execute([$type, $reporter]); // привязываем и исполняем

    Важно! Чтобы этот код работал, сначала надо правильно установить соединение PDO

    Также можно использовать сторонние библиотеки, с которыми все еще проще. Но использование сторонних библиотек почему-то пугат новичков хуже чем зомби на кладбище в безлунную ночь, поэтому настаивать не буду
    Ответ написан
    18 комментариев
  • Плагин для копирования классов в sass по БЭМ?

    RAX7
    @RAX7
    Галочку в настройках убери и будет тебе sass
    5e39ad1f60ecb990327389.png
    Ответ написан
    1 комментарий
  • Какое окружение рабочего стола подобрать под ноутбук?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ставьте 10 windows под ваш ноутбук вы получите отсутствие проблем с дровами, нормальный сон, тот же набор программ, отсутствие проблем конвертации разных офисных форматов.
    Ответ написан
  • Как написать валидацию уникальности по двум полям laravel?

    Fragster
    @Fragster
    помогло? отметь решением!
    либо функцией:
    $validator->after(function ($validator) use ($request, $current_item) {
                if (Items::where('id', '!=', $current_item['id'])->where('source_id', $request->input('source_id'))->where('text', $request->input('text'))->exists()) {
                    $validator->errors()->add('source_id', 'Ошибка уникальности сочетания source_id и text');
                }
            });

    либо в БД указать уникальный составной индекс (если типы колонок позволяют):
    $table->unique(['source_id', 'text']);
    и ловить ошибку вставки/сохранения
    Ответ написан
    Комментировать
  • Функция return в python 3,8 выдает ошибку, почему?

    @SexyHair
    Неправильно расставил отступы)
    Ответ написан
    Комментировать
  • Возможно ли тестирование сайта в автоматическом режиме?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Да, возможно. Именно для этого и был придуман Selenium.
    Ответ написан
    5 комментариев
  • Как сделать так, чтобы хэши md5 совпадали у python и js?

    Строка должна быть также в utf8. Извините за говно код, но вот пример
    const md5 = require("pure-md5")
    const utf8 = require('utf8');
    console.log(md5.md5(utf8.encode("Привет")))
    Ответ написан
    Комментировать
  • Не могу выбрать направление для фриланса. Что есть актуального?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Заходишь на биржи
    2. Делаешь поиск
    3. Смотришь количество заказов в интересующих областях
    4. Смотришь ставки разработчиков в этих областях
    5. Делаешь выводы
    Ответ написан
    Комментировать
  • Какие курсы необходимо пройти по PHP?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Никакие из перечисленных.
    Знаний вы там не получите.
    Ответ написан
    Комментировать
  • Какие курсы необходимо пройти по PHP?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    3 года и умные книжки. Халявы в IT нет,
    но если так хочется пополнить армию лохов, то несите ваши денежки на курсы зарплата 100500 за 3 дня.

    https://phptherightway.com/ - вот это в оригинале читать на английском . Осилите , считайте что грань джуна преодолели.
    Ответ написан
    2 комментария