Задать вопрос
  • Как исправить ошибку Missing required parameter?

    pickHabr
    @pickHabr
    Костыльных дел мастер
    Привет!

    Вместо index.blade.php лучше бы ты предоставил как указан маршрут в web.php (f.e.) и не весь файл, а только один этот маршрут. Точно так же и с контроллером, все остальные методы кроме update можно было бы убрать.

    В ошибке сказано
    URI: admin_panel/services/{service} Missing parameter: service


    Я вижу несколько возможных причин:
    1
    action="{{ route('services.update', $services['id']) }}"
    указан не на той форме, которая отправляется (надо проверить html форму прежде чем нажать сабмит, если это так то надо привести отправляемую форму в порядок)
    2 в
    action="{{ route('services.update', $services['id']) }}"
    не всегда был
    $services['id']
    , а после добавления его в шаблон на фронте страница не обновлялась или закеширована (надо проверить html формы прежде чем нажать сабмит, если это так, то надо обновить страницу и проверить html формы еще раз, если в поле action все еще не подставлен айдишник, то надо выполнить php artisan view:clear на сервере и обновить страницу на фронте, если не помогает, то надо проверить, что измененный шаблон подкинут на сервер, а не лежит чисто локально
    3 таблица services не имеет primary key на id (надо выполнить миграцию, которая это добавит), можешь дополнить вопрос миграцией для создания таблицы services
    4 $services['id'] имеет значение null (надо дебажить и смотреть почему туда попадает такое значение, скорее всего оно будет таким потому что нужно поменять на $services->id но это не точно)
    Ответ написан
    5 комментариев
  • Как примерно выглядит async-await код, если его написать на промисах?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    да правильно.

    await можно вызвать только внутри async блока.
    когда мы используем await отлов ошибки всегда нужно делать в try { ... } catch (e) {}.
    любой метод который возвращает промис можно использовать await внутри блока async
    и того вы можете комбинировать устаревший код с новым.

    (async () => {
    
    async function fetchData1(url) {
       try { 
        let response =  await fetch(url);   // promise
         return await response.json();      // promise
      } catch(e) {
         return null;
      }
    }
    
    // на промисах  это выглядело бы так, вам все равно нужно вернуть обьект промиса, если вам важно вернуть результат.
    
    function fetchData2(url) {
       return new Promise((resolve,reject) => {
           fetch(url).then(res => res).then (res => res.json()).then((result) => {
             resolve(result);  // говорим что наш промис достиг успеха,
          }).carch(e => {
              resolve(null);  // так как мы повторяем логику try catch  мы используем пустой ответ. вместо reject(e);
          })
       })
    }
    
    const promises = [
        fetchData1('/last-news'),       
        fetchData2('/last-comments'),  
        fetchData2('/popular-news'),
    ];
    // (после объявления массива методы уже будут выполнятся, лучше делать через promises.push(...) )
    // .. куча логики
    // приказываем ожидать если не все выполнялось.
    const result = await Promise.all(promises);
    console.log({result});    
    
    // или так 
    Promise.all(promises).then( results => {
        console.log({result});    
    })
    
    // a так если мы хотим последовательно и лапшой promise hell
    fetchData1('/last-news').then(resultNetws => {
            fetchData2('/last-comments').then(lastComments => {
                 fetchData2('/popular-news'').then(popularNews => {
               
                  })
           })
    });
    
    // рекомендую прочитать про статичные методы у обьекта Promise.all итд.
    
    
    })());
    Ответ написан
    1 комментарий
  • Какая есть программа для поиска дубликатов видео с частичным совпадением видео ряда?

    2ord
    @2ord
    Для начала, я бы взял первую программу (назыв. "икота" по-польски) из https://alternativeto.net/software/video-duplicate...
    spoiler
    145280350-506f7e94-4db0-4de7-a68d-6e7c26bbd2bf.gif

    и проверил бы остальные из того списка, если бы не подошла.
    Ответ написан
    Комментировать
  • Возможно ли получить тип пропсов у child?

    neuotq
    @neuotq
    Прокрастинация
    Немного не ясно что вы хотите, вот это получать?
    type ReturnElementProps<T> = T extends React.ReactElement<infer P> ? P : never;
    
    type FormItemProps<
      C extends React.ReactElement,
      P extends ReturnElementProps<C>
    > = {
      getValueFromEvent: (...args: Parameters<P["onChange"]>) => void;
      children: C;
    };
    
    const FormItem = <
      C extends React.ReactElement,
      P extends ReturnElementProps<C>
    >(
      props: FormItemProps<C, P>
    ) => {
      // из пропсов вашего компонента берём дочерний элемент
      const { children } = props;
      // из пропсов дочернего берем onChange
      const { onChange } = children.props;
      //тест
      console.log("Child onChange cb", onChange.toString());
      return children;
    };
    
    export default function App() {
      return (
        <div className="App">      
          <FormItem getValueFromEvent={(event) => event}>
            <input onChange={(e) => console.log("Children e", e.target.value)} />
          </FormItem>
        </div>
      );
    }
    Ответ написан
    4 комментария
  • Какую камеру выбрать для наблюдения за животными и рыбками в разных условиях?

    @rPman
    Вам не камера нужна а решение, т.е. это не купил коробку и заработало, а нашел подрядчика, он все собрал, подключил, софт настроил и гарантию с поддержкой N лет подписал.

    Готовой камеры с батарейкой и ИК подсветкой нет... точнее чего то в списке требований не будет реализовано.

    Ну и чтобы был хоть какой то ответ - смартфон + карта памяти + ИПБ с поддержкой дополнительных батарей, по деньгам такое решение максимально дешевое, ну в коробку герметичную засунуть с охлаждением/подогревом (как ни странно на последнее можно потратить треть стоимости от всего остального). Софт, какой нибудь ip webcam для android, он и пишет, и удаленное управление по сети (камеры в локальную сеть объединить) и детектор движения и куча всего...

    Про ИК подсветку, камеры со сменным светофильтром это сразу 2х к цене, дешевле поставить светодиодное освещение с линзой, направленной строго по области видимости камеры и выключателем от освещения.

    Современные смартфоны уже имеют камеру с заоблачным соотношением цена/качество, особенно когда начинаешь считать стоимость специализированных уличных камер. Причем стало на столько это абсурдно, что производители смартфонов low и mid ценовых диапазонов уже давно блокируют функционал этих камер на использование только в официальном приложении 'камера', которую сложно автоматизировать, наверное чтобы не конкурировать с сектором камер. Я на смартфоне xiaomi a2 2018 года снимал звезды ночью, без оптики вообще, просто поставив выдержку 8сек, в городе (это с засветкой! в лесу там вообще можно было бы млечный путь снимать).
    Ответ написан
    1 комментарий
  • Какую камеру выбрать для наблюдения за животными и рыбками в разных условиях?

    hint000
    @hint000
    у админа три руки
    1. Большой объем памяти.
    Не делают камеры со встроенной памятью. Вернее, под заказ могут сделать что угодно, но такие капризы будут стоить огромных денег. Делают под карты памяти micro-SD - какую карту поставите, такая и будет. Но любой карты будет недостаточно для двухнедельной записи в высоком качестве. Поэтому решением будет простенький видеорегистратор (то, что называется DVR или NVR) с жестким диском.

    2. Мощная батарея.
    Это как раз легко. Почти все камеры видеонаблюдения питаются от 12 вольт. Видеорегистраторы тоже. Так что берёте автомобильный аккумулятор (дёшево и сердито) и тупо подключаете к нему оборудование. Ну ладно, не совсем тупо подключаете, предохранитель надо поставить, чтобы случайно не устроить лесной пожар. Приехали забирать записи - заодно привезли заряженный аккумулятор. Только нужно заранее проверить, как долго проработает конкретная камера с регистратором от конкретного аккумулятора. Может быть потребуется не один аккумулятор, их можно параллельно соединять. А если есть возможность штатно питать от сети, и только резервировать аккумулятором на случай пропадания напряжения, то для этого продаются специальные штуки - резервируемый блок питания для охранных систем (пожарная сигнализация, видеонаблюдение), на выходе у таких блоков 12 вольт. Другой вариант - источник бесперебойного питания с подключением внешних аккумуляторов (можно автомобильные подключать); например, такие ИБП применяют в частных домах для питания газовых котлов. Профессиональные ИБП-решения будут стоить на порядок дороже.

    3. помимо хорошей матрицы в камере и хорошей оптики, нужно ещё оценить расстояние, на котором хотите чётко видеть животных - от этого зависит выбор фокусного расстояния камеры; для разных случаев будете ставить разные камеры; либо камеры с переменным фокусным расстоянием, они несколько дороже. Также нужно выбрать угол обзора камеры. Нельзя сказать, что лучше широкий угол или лучше узкий, вы должны осознанно сделать выбор. Либо брать камеры с переменным углом (zoom, трансфокатор), они дороже. Как это работает: на узком угле обзора (максимальный zoom) вы видите на весь экран маленький кусочек слона, зато можете увидеть муху, если она сядет на это место; на широком угле (минимальный zoom) вы видите на экране всего слона, но муху не сможете различить, потому что она займёт один пиксель. Выбирать вам.

    4. Легко. Уличные камеры видеонаблюдения работают по несколько лет в жару, дождь, мороз. Но тут мы вспоминаем, что у нас кроме камеры ещё есть видеорегистратор, а вот он рассчитан находиться в сухом помещении при температуре хотя бы +10 градусов (ну можно рискнуть при +5, без гарантии). Если вместо жестких дисков взять SSD больших объёмов, то можно рискнуть и при 0 градусов, но будет дороже. Отдельно подумать, чтобы не было конденсата при перепадах температур (много мифов о конденсате; нужно понимать условия его образования). Если тянуть кабель от избушки в лес - не вариант, то подумать про Wi-Fi передачу с камеры (а регистратор в избушке). Но для рыб потребуется кабель хотя бы до берега (или радио-буй) - радиосигнал через воду почти не проходит (если мы не про связь с ПЛАРБ, там очень специфично). Ну или делать полностью герметичный бокс с камерой, регистратором и аккумулятором внутри.

    5. Режим ночной съемки.
    Трудный вопрос. Ночная съёмка реализуется двумя вещами одновременно: (1) инфракрасная подсветка, (2) отключение инфракрасного фильтра. Ну ладно, двумя с половиной, (3) высокая чувствительность матрицы за счёт электронного усиления. С фильтром всё понятно, камера умеет автоматически отключать его при снижении освещённости. Увеличение чувствительности существенно ухудшает картинку (изображение бывает "шумное", как будто рябь по всему экрану), это почти неизбежно, приемлемое качество получается только при очень хорошей подсветке. Так вот, подсветка. Она инфракрасная, человек её не видит. Но у разных животных разное зрение. Надо у биологов спрашивать, не будет ли это отпугивать некоторые виды. Конечно, многие животные, как и люди, не будут реагировать на ИК. Но уточнять нужно. И ещё, я понятия не имею, насколько эффективна ИК-подсветка под водой (нужно проверять), даже если рыбы на неё не будут реагировать. Впрочем, допускаю, что рыбам и обычный белый свет не будет мешать и не будет их отпугивать, если так, то можно попробовать видимую подсветку. Не забудьте, что подсветка тоже будет кушать аккумулятор, учтите при тестировании времени автономной работы. И последнее. Рыбы нередко имеют серебристый цвет. Они могут здорово отражать луч подсветки, так что можете получить на экране яркие пятна с потерей деталей. Отчасти такую проблему можно решить боковой подсветкой отдельным светодиодным прожектором (существуют ИК-прожекторы).

    6. Возможность трансляции изображения на ПК.
    На локальный ПК - без проблем, для каждого регистратора есть ПО для подключения к нему. Ну а передача через Интернет - сами же говорите - ограничена имеющимися каналами связи, никаких чудес тут не будет. Принципиально возможность есть. И если говорить о просмотре картинки в реальном времени (не записи), то многие камеры умеют транслировать одновременно два потока: один высокого качества для записи, другой грубый для проталкивания через плохой интернет-канал. Параметры потоков обычно можно настроить (разрешение, частота кадров, степень сжатия). И если им не терпится - пусть смотрят загрублённую картинку, и не сразу несколько камер, а по одной за раз, так и через плохой канал может пролезть. Т.е. не транслировать все потоки в институт постоянно, а по запросу: хотим посмотреть 7-ю камеру, кликнули на неё, посмотрели, а теперь хотим посмотреь 4-ю и т.д. С другой стороны можно и сразу несколько камер транслировать, но настроенных выдавать 1 кадр в секунду или 2 кадра в секунду (при этом локальная запись будет на честные 25 кадров в секунду).

    Итого: совершенно верно вам написал rPman, нужно решение. И оно даже не будет однородным, на каждой точке может потребоваться индивидуальный инженерный подход. У вас большая серьёзная задача. Ничего совсем уж уникального, ничего нерешаемого, но работы дофигища. Нельзя предложить вам какое-то готовое универсальное решение. Можно, но оно вам не понравится, и оно всё равно не будет готовое. Ищите исполнителей, закладывайте на работу кучу времени, не рассчитывайте, что все вопросы исполнители решат самостоятельно, они будут предлагать варианты, но потребуется и участие в обсуждении конечных заказчиков - учёных, пусть они люди занятые, но без обсуждения деталей с ними выйдет хрень, которой они же будут недовольны (а деньги уже потрачены). Так что планируйте потратить время занятых людей, без этого никак.

    И удачи вам в решении этой интересной задачи.
    Ответ написан
    Комментировать
  • Как лучше развернуть WiFi сеть в радиусе 500м?

    @alexalexes
    Проводом будет самое простое и надежное по помехоустойчивости решение, если нет непроходимых участков, где физически невозможно кинуть кабель. Только учтите, что вам на каждые 200м нужно будет устройство-повторитель.
    И второй фактор, если камера питается по PoE, то смотрите спецификацию этого PoE, дистанция для кабеля с технологией запитывания может сократиться до 100м.
    Ответ написан
    1 комментарий
  • Как лучше развернуть WiFi сеть в радиусе 500м?

    kiberspy
    @kiberspy
    А можно как-то получить хотя бы приблизительную план-схему? Или исходя из описания - тупо прямоугольник с камерами по углам - тогда нужно руки отломать в плечевых суставах за такое решение по видеонаблюдению...
    Или цель была только просмотр периметра? Вопрос "накуа" и главное зачем?

    С расстояния 500 м. вряд ли что-то можно увидеть толкового на другом краю... даже если поставить 2 камеры которые смотрят друг на друга - 250 м. с каждой не добавят информативности!

    Upd: возможно это - https://nadzor.ua/blog/videonabludenie/kakoj-ugol-... - немного добавит понимания
    Ответ написан
    6 комментариев
  • Какая оптимальная структура хранения кастомных классов в Laravel 11?

    @mrFlyer
    Имхо это не имеет ровно никакого значения, как вам нравится так и называйте и где хотите, там и храните. Тем более, что у вас со временем может таких папок оказаться несколько.
    Ответ написан
    6 комментариев
  • Почему в наутилусе папка распаковывается за 1 секунду, а в Windows 1 минуту?

    Потому что в винде zip очень древний и неоптимизированный.
    Лучше использовать winrar или 7zip для распаковки - тогда тоже будет быстро.
    Ответ написан
  • Почему компонент не получает данные от pinia?

    @MaxRyazan
    state: () => ({
        count: 0,
      }),
      getters: {
        doubleCount: (state) => state.count * 2,
      },


    без this
    Можно в доку заглядывать =)
    https://pinia-ru.netlify.app/core-concepts/getters.html
    Ответ написан
    2 комментария
  • Как исправить ошибку Your requirements could not be resolved to an installable set of packages?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    или установить расширение fileinfo в php
    или downgrade до php7

    но правильнее начать с установки актуальной версии laravel, 9я мягко говоря устарела
    Ответ написан
    Комментировать
  • Как добавить класс js?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Используйте всплытие событий. Вешайте обработчик на постоянно присутствующий родительский элемент.
    Ответ написан
    2 комментария
  • Какой вариант структуры файлов моделей в Laravel лучше?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    app\Models\Post.php
    app\Models\Category.php
    app\Models\Tag.php
    app\Models\Order.php
    app\Models\Product.php

    И учиться проектировать базу данных без кучи мусора вроде OrderTag PostTag и тд

    Имхо: через какое-то время будешь туда только заглядывать чтобы вспомнить что-нить а если не лениться писать комментарии (ну и плагины ide всякие для удобства) то и вообще не будешь.
    Имхо2: в модули не сильно запаривайся - хлебнешь лишнего головняка. Рано или поздно для своего же удобства начнешь выносить часть функционала и найдешь свой путь.
    Ответ написан
    Комментировать
  • Какой вариант структуры файлов моделей в Laravel лучше?

    vhood
    @vhood
    Не забывайте отмечать решения
    Для маленького проекта разницы нет. Можно использовать тот вариант, что быстрее.

    Если хочется знать, есть ли архитектурный паттерн для группировки сущностей - то это DDD (Domain Driven Design). Судя по всему, можно выделать 2 агрегата - Shop и Blog.

    Однако, до изучения темы, лучше выстраивать архитектуру на основе известных принципов программирования.
    Ответ написан
    2 комментария
  • Как лучше инициализировать объект?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    типа, антипаттерн...

    но это все равно вызов метода в конструкторе, что не приветствуется.

    Бред. Вот кем не приветствуется - вот он пускай и не приветствует и тихо миро плавает в своем болотце. Спокойно вызывайте приватный инициализатор в конструкторе - это как раз нормально. Конструктор - это и есть инициализатор объекта. Он даже называется "конструктор" - сборщик объекта. Его для этого и придумали. Выносить часть инициализации из инициализатора - на самом неделе не самая умная идея. А вот разбить инициализацию на разные логические части и разнести в разные методы - как раз таки очень даже хорошая практика. Декомпозиция, небольшие и простые функции/процедуры и все такое прочее.
    Ответ написан
    2 комментария
  • Как использовать два или более "with" Laravel?

    yesbro
    @yesbro
    Думаю, помогаю думать
    В методе with ошибка у тебя, должно быть вот так

    with(['table1:column1,column2,column3' , 'table2:column1,column2,column3'])


    То есть если для with & withCount тебе надо 2 и более связи без уточнения запроса, то просто их перечисляешь в массиве без ключей. Если же нужно уточнять запрос, то ключом идет имя связи, а значение запрос.
    Ответ написан
    Комментировать
  • Как правильно прочитывать стрелочные функции?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    А что, стрелочные функции не принимают аргументов или не возвращают результат? Или делают это как-то иначе? Или они не являются функциями?
    Вопросы риторические.

    "Говорите" про них ровно так же, как про обычные. Когда окажется важным, что это именно стрелочная функция (а это бывает довольно редко), так и уточняйте.
    Ответ написан
    3 комментария
  • Как работает метод $request->accepts() в Laravel?

    @X110111
    Потому что */*, что означает любой тип.
    Ответ написан
    3 комментария
  • Как реализовать структу для каталога next.js?

    уверен, есть более лаконичное решение
    Нет, магического способа «сделать хорошо» не существует.
    Ответ написан
    Комментировать