Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Maксим Волков

  • 5
    вклад
  • 51
    вопрос
  • 26
    ответов
  • 77%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как собирать и запустить javascript приложение?

    xez
    Dmitry Roo @xez
    Senior Junior Roo
    https://learn.javascript.ru/
    Ответ написан 16 нояб. 2022
    Комментировать
    Комментировать
  • Как сделать окошко с обновляемым текстом в Tkintere Python?

    YariKartoshe4ka @YariKartoshe4ka
    Было бы неплохо изучить простой GUI, возможно Tkinter
    from tkinter import Tk, Label
    from time import sleep
    
    root = Tk()
    
    label = Label(text='something')
    label.pack()
    
    for x in range(100):
        sleep(1)
        label.config(text=str(x))
        root.update()
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как изменить data() свойство компонента VUE полученными с сервера данными?

    artloveyou
    artloveyou @artloveyou
    Вам стоит для понимания упростить свой код, в общем случае это могло бы выглядеть
    так:
    <template>
      <div>
        {{ dataFromAPI }}
    
        тут вызов апи по событию, в вашем случае вы его к чему-нибудь привязываете
        <button @click="getAPI">Get API</button>
      </div>
    </template>
    
    <script>
    // смешивать jQuery c Vue - плохой вариант, лучше используйте axios
    import axios from 'axios'
    
    export default {
      data() {
        return {
          // тут у вас реактивное свойство
          dataFromAPI: null,
        }
      },
      mounted() {
        // тут первый вызов апи при загрузке страницы
        this.getAPI()
      },
      methods: {
        getAPI() {
          return axios
              .get('https://api.your.address')
              .then(response => {
                if (response.data) {
                  // когда апи возвращает данные передаем их реактивному свойству
                  // и они обновляются без перезагрузки, как вам надо
                  this.dataFromAPI = response.data
                }
              })
              // ловим ошибки
              .catch(error => {
                console.log(error);
              })
              .finally(() => {
                // если надо -- дополнительные действия (выключить лоадер, например)
              })
        }
      }
    }
    </script>


    и разобравшись вернуться к тому что вы делаете.
    Ответ написан более года назад
    4 комментария
    4 комментария
  • Как сделать валидацию при загрузке файлов с различными расширениями: pdf, doc, docx, jpg, jpeg, png, ppt, txt, tif, xls, xlsx?

    Евгений @Nc_Soft
    'file' => 'mimetypes:application/pdf
    заменить на
    'file' => 'mimes:application/pdf
    либо самому проверить, что гибче
    <?php
    $file = request()->file('file');
    $ext = $file->getClientOriginalExtension();
    $ext = strtolower($ext);
    if (!in_array($ext, ['jpg', 'jpeg', 'png', 'gif'])) {
      return response()->json([
       'errors' => [
         'file' => 'INVALID_EXTENSION',
        ]
       ], 400);
    }
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Как наиболее рационально обновлять данные в моделях Laravel?

    Aleksey @kandrash
    Кратко о себе
    Вам верно ответили и N и Илья . На чистом Eloquent без raw запроса вы ничего не оптимизируете.

    1 вариант. Ответ N это акцессоры в модели. Доки.
    2 вариант. Ответ Илья это raw запрос. Доки.
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • Как наиболее рационально обновлять данные в моделях Laravel?

    New_Horizons
    Илья @New_Horizons
    Бред:
    по одному update запросу на каждую валюту, типа того:
    update `products`
    set `price` = (`base_price` * ?)
    where `currency` = 'EUR';

    Где ? - курс.
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Laravel 8 + OpenServer, ошибка при установке пакета Сomposer, ограничение параметра PHP memory_limit. Как исправить?

    delphinpro
    Сергей delphinpro @delphinpro Куратор тега PHP
    frontend developer
    Редактировать нужно шаблоны конфигураций. Они в папке userdata/config. Также их можно открыть из меню программы
    5fdb312d84243566977072.png

    Второй вариант, это переопределить параметр из командной строки. Я именно его предпочитаю.

    php -d memory_limit=-1 composer.phar <...>
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Laravel + Jetstream, как создавать и распределять роли пользователей?

    Sanes
    Sanes @Sanes
    Я пользуюсь Fortify + Laravel-permission
    Примеры
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Что означает тип данных/поля DECIMAL (MySql)?

    qonand
    Максим Федоров @qonand
    Software Engineer
    DECIMAL(X,Y)
    X - общее количество знаков в числе (с учетом дробной части)
    Y - количество знаков в дробной части
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Ошибка 419 после переноса сайта на Laravel на хостинг. Как исправить?

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

    Aleksey @kandrash
    Кратко о себе
    Посмотрите в сторону событий https://laravel.com/docs/8.x/eloquent#events

    // В контроллере картинки не трогаем
    public function destroy($id)
    {
        Pechnik::destroy($id);
        // return ..
    }
    
    // Pechnik.php
    protected static function booted()
    {
        // При удалении удаляем связаные картинки
        static::deleted(function (Pechnik $pechnik) {
            // Обновлено, т.к. mass delete не вызывает событие для модели Image
            // $pechnik->images()->delete();
            // Подход тоже не оптимальный, лишние запросы к БД. Есть что улучшать.
            foreach ($pechnik->images as $image) {
                $image->delete();
            }
        });
    }
    
    // Image.php
    protected static function booted()
    {
        // Удаление картинки из БД - удаляем файл
        static::deleted(function (Image $image) {
            // Удаляем файл
        });
    }
    Ответ написан более двух лет назад
    8 комментариев
    8 комментариев
  • Как задать рядам элементов DOM дерева HTML документа одинаковую высоту?

    AntonLitvinenko
    Антон Литвиненко @AntonLitvinenko
    HTML coder
    Ну так сайт на флекс, поумолчанию каждый ряд ведёт себя так как вам нужно. А дальше просто нужно решить, как внутри карточки что расположить, чтобы было красиво. Обычно описаным вами скриптом обходят как раз блок с названием и одинаковую высоту дают ему. Если карточка флекс, то достаточно элементу, идущим за названием задать margin-top: auto
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как задать рядам элементов DOM дерева HTML документа одинаковую высоту?

    hzzzzl
    hzzzzl @hzzzzl
    положить всё кроме названия в отдельный див, и его прижать к низу

    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Bitrix GetByID, получаю элемент инфоблока - проблема с кэшированием данных. Как решить?

    Suntechnic
    Александр Маджугин @Suntechnic
    $GLOBALS["AUTOR_ID"] = $arResult["PROPERTIES"]["AUTOR_ID"]["VALUE"]; - вот это скорее всего у вас в шаблоне или в result_modifier.php. А может и в самодельном компоненте, но в кэшируемом блоке.

    Вам надо вынести установку этой переменной за пределы кэшируемой области. Скажем component_epilog.php - там и место таким вещам.

    А вообще передача через глобальную переменную, это плохо, я считаю. Лучше уж использовать свойства страницы.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как исправить ошибку Invalid handler for event: got undefined Vue JS?

    blgnt
    Andrey Sushenkov @blgnt
    Здесь похожая проблема:

    Если вкратце, то:
    1. Проверь функцию onChange, которую ты подаешь в v-on:change. Там была как раз не о функции верхнего уровня, а о функции внутри компонента, который вызывал функцию. По крайней мере в этом коде всего один вызов v-on:change
    2. Проверь, не дублируется ли внутри компонента объявление onChange: например, объявлен метод onChange и свойство computed onChange.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему в не отражается картинка, при использовании VUE.JS?

    potapchino
    alex @potapchino
    <img :src="imgUrl" :alt="imgAlt" class="uni_result-img">


    computed: {
      imgUrl() {
        return require(`@/assets/img/${this.result.img}`)
      },
      imgAlt() {
        return `Комплект ${this.result.title}`)
      }
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Vue.js. Как получить название CSS класса из Data свойства?

    potapchino
    alex @potapchino
    <span :class="note.info"></span>
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
Оценили как «Нравится»
Самые активные сегодня
  • Drno
    • 8 ответов
    • 1 вопрос
  • vabka
    Василий Банников
    • 6 ответов
    • 0 вопросов
  • rPman
    • 5 ответов
    • 0 вопросов
  • simplylinux
    • 2 ответа
    • 2 вопроса
  • saboteur_kiev
    Saboteur
    • 3 ответа
    • 0 вопросов
  • SoreMix
    soremix
    • 3 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации