Задать вопрос
  • Для чего в role и permission добавляют список значений?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    Роли чаще всего это группа привилегий. Почему используют их вместе - зависит от системы. Иногда достаточно ролей. Например, если у вас одна админка и пользоваться ей могут только админы. Но если у вас один UI на несколько пользователей, то обойтись одной ролью будет сложно. Если вы будете в коде везде делать проверку, что пользователь админ и ещё сотрудник и ещё менеджер, то это будет сложно. К тому же при добавлении новой роли вам нужно будет по всему коду добавлять проверку ещё и на другую роль. Вместо этого используют разрешения, которые выдаются пользователю. В коже вам нужно проверить это разрешение/привилегию и вам без разницы какая это роль. Добавляете новую роль и привязываете новые разрешения. Пользователь сразу сможет использовать систему в зависимости от прав.

    То есть роли используют чаще для чего-то глобального и/или объединения разрешений. А сами разрешения уже позволяют гибко настраивать проверки.
    Ответ написан
    3 комментария
  • Как сделать такую тень как на фотке css&html?

    Seasle
    @Seasle Куратор тега CSS

    Ещё можете почитать статью: Smoother & sharper shadows with layered box-shadows.
    Ответ написан
    Комментировать
  • Как вывести результат из ответа JSON на HTML страницу?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Получите ВСЕ данные и потом выводить один раз.
    XMLHttpRequest меняем на fetch, для параллелизации запросов используем Promise.all. И когда всё загружено - рисуем DOM.
    Ответ написан
    2 комментария
  • Как в предварительном запросе передать переменной $ значение полей?

    @rPman
    Да, параметризовать можно только значения но не наименование полей и таблиц (мало того ты и prepared запрос так не сможешь сделать, с каждым новым значением $(column) будет новый запрос).

    Да, тебе придется валидировать значение в $(column) но это не сложно так как там допускаются только латинские буквы (оба регистра), цифры и подчеркивание. Конечно если ты не используешь идентификаторы_в_ковычках (там любые символы, но зачем тебе стрелять себе в ногу), ну в крайнем случае как разработчик ты знаешь что у тебя в запросе и какие допустимые наименования полей там могут быть
    Ответ написан
    1 комментарий
  • Как сделать кнопку для удаление на js или jquery данных из массива localstorage?

    Stalker_RED
    @Stalker_RED
    В localStorage хранится строка.
    Нужно получить эту строку, преобразовать её в JSON, удалить какой-то товар, снова преобразовать в строку и сохранить в localStorage.

    Вы привели кусок кода, который удаляет что-то из data, и записывает в localStorage.
    При этом откуда берётся эта data - непонятно.
    Ответ написан
    3 комментария
  • Почему при изменении объекта он не меняется в массиве?

    Lynn
    @Lynn
    nginx, js, css
    TL;DR: ты путаешь объекты и ссылки на объекты.

    Если придумывать как я люблю разные аналогии, то представим что объект это воздушный шар, а ссылка на объект это канат который привязывает этот шар к земле (или другим шарам).

    Ты создал новый воздушный шар { name:"object" } и привязал его канатом с биркой obj к земле (obj = ...).
    Потом ты привязал ещё один канат с биркой arrq[0] к этому же шару (arrq = [obj]).
    А потом отвязал канат obj (obj = null).
    При этом канат arrq[0] никуда не делся и всё так же привязан к шару.

    Мне эта аналогия нравится ещё тем, что когда ты отвяжешь последний канат связывающий воздушный шар с землёй (например напишешь arrq[0] = null), то он улетит и в конце концов где-то упадёт и пропадёт (сработает сборщик мусора).
    Ответ написан
    Комментировать
  • На каком движке делались ролики к играм PS1?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    На чем получится и что найдут подходящего в рамках бюджета или знаний специалиста в наличии: от типичных макса/майи/блендера до самопала и другой экзотики. В то время для разработки игр для консоли надо было приобрести у производителя консоли набор разработчика, который и использовался для разработки игры под конкретную консоль. А там уже используя SDK стандартный ролик конвертировался в понятный для коносли формат.
    Ответ написан
    7 комментариев
  • Почему стилизация select отличается в браузерах?

    sergey155
    @sergey155
    Стилизация элементов<select> и <option> с помощью CSS в некоторых аспектах ограничена. Это связано с тем, что рендеринг выпадающего списка и его пунктов (<option>) веб-браузерами в значительной степени зависит от нативного операционной системы интерфейса пользователя (OS UI). В результате многие аспекты этих элементов, такие как ширина выпадающего списка, оформление выпадающего списка, и стилизация пунктов списка, могут оказаться сложными для полного контроля с помощью обычных CSS.

    Для стилизации можете воспользоваться например select2
    Ответ написан
    Комментировать
  • Можно ли на vue верстать?

    delphinpro
    @delphinpro
    frontend developer
    Если вам нужна просто верстка, то и требуйте просто верстку.
    Если вы не планируете использовать vue, то и не нужно "на нем верстать". В противном случае это уже не просто верстка, а полноценная разработка фронта (внешний вид + функциональность).
    Иногда имеет смыcл запилить на обычном сайте (не Vue SPA) отдельные интерактивные виджеты на vue/react, ну например, калькулятор какой-то замороченный.
    Ответ написан
    2 комментария
  • Как правильно создать layout страницы с изменяемым состоянием?

    @iljaGolubev
    Не работаю с react, но есть проекты на inertia+vue. Думаю, общий подход от этого не изменится.

    Вы уже используете inertia state (`props.auth.user.name`) - можно использовать и для popup. Props реактивные. Добавьте нужные значения (textPopup,isVisiblePopup,typePopup) в shared-data.
    Изменяете значение на странице с кнопкой - в шаблоне отобразится popup.
    function showPopup можно вынести в отдельный файл и импортировать на нужных страницах. showPopup изменяет prop.popup.textPopup и прочие.

    Плюс подхода - можно с сервера сразу передать нужные значения в попап из контроллера.
    Ответ написан
    2 комментария
  • Успешно! вместо текста?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Кодировка же - у вас исходная utf-8, а выводится как 1251. Смотрите как у вас там и что выводится и какие заголовки.

    UPD: пофиксил очепятку, спасибо @rPman
    Ответ написан
    6 комментариев
  • Почему beforeunload не отправляет запросы в браузере Safari?

    Lynn
    @Lynn
    nginx, js, css
    Посмотрите на Beacon API. Он как раз предназначен для аналитики.
    А обычные запросы браузер имеет полное право обрывать потому что полагает что в нём уже нет никакого смысла раз вы покидаете страницу.

    А ещё в MDN прелагают использовать событие visibilitychange вместо beforeunload.
    https://developer.mozilla.org/en-US/docs/Web/API/N...
    Ответ написан
    1 комментарий
  • Почему в обработчике старый state?

    szQocks
    @szQocks
    происходит перерендер Wrapper, рендерится второй Inner. После этого запускается onUnmount первого Inner, в консоли вижу null,
    - происходит перерендер Wrapper, рендерится второй Inner, в который попадает функция update в котором state равен null, после запускается onUnmount первого Inner и т.д

    демо

    и вообще не советую в функции возврата обновлять какой-то стейт кроме глобального стора который относится ко всему приложению

    если компонент размонтируется, и вызовится функция возврата из useEffect например которая обновляет какой-то там стейт верхнего компонент который там же размонтировывается, а пользователь просто открыл другую страницу в SPA, то будет сбой
    Ответ написан
    Комментировать
  • Как сверстать такую галлерею?

    @Saipy
    Используйте grid вместо flex
    Ответ написан
    Комментировать
  • Как создать программу с готовыми шаблонами для формирования отчётов?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    1. Выбираем язык программирования
    2. Изучаем его
    3. Создаем базу с данными и учимся заполнять и извлекать данные из базы
    4. Пишем программу, которая умеет извлекать данные и выводить отчет
    5. Создаем шаблоны для титульной страницы и остальных страниц, интегрируем в программу

    Ну и все в таком духе.
    Ответ написан
    2 комментария
  • Почему в toLowerCase( ) нельзя вложить что-то на подобие includes(var)?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Даже не знаю с чего начать...
    Ну начну с определений объектов Number и String (сами почитаете).

    У объектов есть методы, объекты можно вызывать как функции.
    Первый пример
    Number(Math.pow(2, 4));
    Здесь мы имеем два объекта Number и Math. У объекта Math вызывается метод pow, который возвращает некое значение. Это значение передается в качестве параметра в Number, вызываемый как функция для приведения переданного значения к числу.
    То есть Number() ожидает параметр, и мы его туда передаем.

    Второй пример.
    str.toLowerCase().includes(s);
    Здесь вы имеем объект String (строка в переменной str). У этого объекта куча методов, которые можно использовать. Здесь вызывается метод toLowerCase(). Этот метод НЕ принимает никаких параметров (смотрите документацию) и возвращает новый объект String. Затем у этого нового объекта String вызывается еще один метод includes(s)
    Ответ написан
    Комментировать
  • Делят ли файлы в nodeJS?

    Посмотри на nestjs - там вполне opinioated архитектура.
    Правда если понравится nest - не понятно, зачем вообще нода (ибо можно тогда на какой-нибудь из "более взрослых" языков перейти. Типа того же C# + asp net core)
    Ответ написан
  • Какие ограничения есть на ip адреса для SSH?

    SSH никаких особенных ограничений на ip-адреса не накладывает.
    127.0.0.1 - это вполне допустимый адрес, к которому можно подключиться.

    Ну давай по порядку:
    1.
    • 151.248.113.78 - вроде ок
    • 127.0.0.1 - точно мимо, тк локалхост
    • 194.85.283.12 - невалидный адрес. ipv4 - это четыре 8битных числа. 283 не входит в этот диапазон
    • 192.168.15.2 - подозрительно похож на адрес в локальной сети
    • 172.16.0.92 - аналогично
    • 185.76.145.0 - подозрительно похоже на адрес подсети, но пока карандашом
    • 10.55.84.56 - что-то подозреваем

    2. Идём смотреть, какие адреса точно являются локальными
    • 151.248.113.78 - не локальный
    • 192.168.15.2 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена
    • 172.16.0.92 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена
    • 185.76.145.0 - не локальный
    • 10.55.84.56 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена

    Остаются всего два адреса:
    151.248.113.78 и 185.76.145.0
    Причём второй может оказаться невалидным, если подсеть /24
    Ответ написан
    Комментировать
  • Laravel + Inertia. Как настроить формат JSON?

    @AnteFil Автор вопроса
    Для будущих поколений кто будет искать решение этой проблемы. Так и должно быть. И это не ошибка работы )))))
    Ответ написан
    2 комментария