• Где найти задачники CS50?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    В этом году: https://cs50.harvard.edu/x/2023/
    Ответ написан
    Комментировать
  • Можно ли без pivot модели влиять на возвращаемые значения полей?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Когда вы получаете данные для отображения, вы можете вообще не использовать модели.
    \DB::table('order_dishe')
    ->join('orders', 'order_dishe.order_id', '=', 'orders.id')
    ->where('order_id', $oid)
    ->get();

    PS: Весьма странным выглядит то, что вы запоминаете время оплаты за каждое блюдо в рамках одного заказа. Не приходит в голову случай, при котором такое может понадобиться... И почему это именно один заказ, а не несколько...
    Ответ написан
    2 комментария
  • Как использовать vue-router в локальном файле?

    dlnsk
    @dlnsk Автор вопроса
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Нужно просто переключиться на hash history.
    import { createRouter, createWebHashHistory } from 'vue-router'
    
    const router = createRouter({
      history: createWebHashHistory(),  // <---
    })
    Ответ написан
    Комментировать
  • Можно ли сымитировать для приложения fullscreen внутри окна?

    dlnsk
    @dlnsk Автор вопроса
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Отвечаю сам:
    Вау! Вот это крутотень! Не нужны никакие виртуальные экраны!
    Xephyr - наше все!
    Xephyr позволяет создать вложенную новую X-сессию внутри текущей. Внутри вложенной X-сессии можно запустить windows manager и делать вообще все что хочешь, а можно просто запустить нужное приложение и получаем именно то что требовалось.
    Причем во многих дистрибутивах он уже стоит по-умолчанию.
    Делаем так:
    $ Xephyr -screen 800x600 :1 &
    $ DISPLAY=:1 wps &

    Вместо wps (офис) ставьте любое приложение, которое вам нужно. Понятно что без WM хотя запустить несколько приложений и можно, но переключаться между ними не получится. Но для одного приложения работает идеально.
    Ответ написан
    Комментировать
  • Как передать переменную из 1 функции в другую в контроллере?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Вы должны помнить, что когда запускается метод verify - это совершенно новый запуск вашего приложения, никак не связанный с предыдущим, когда выполнялся метод store. В связи с этим запоминание чего бы то нибыло в памяти бесполезно. Каждый запуск приложения Laravel (и любого другого серверного скрипта) - это запуск с чистого листа.
    В связи с этим, если вы хотите работать с какой-то информацией (пользователем например), вам нужно ее откуда-то получить. Таким образом если вам нужен пользователь, то вам нужен id пользователя и в verify нужно получить из БД этого пользоателя по id. Ну а дальше сравнивайте что хотите.
    Это значит что id вы должны либо передать через форму вместе с verification_code, либо, если он есть в роуте, просто воспользоваться Route Model Binding (как это сделано в store). Короче вам нужно понять откуда взялся $user в store, и тогда вам станет легче, но понять это можно только читая документацию.
    Ответ написан
    Комментировать
  • Как вести параллельную работу с проектом и потом сливать в один?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    1. Вам нужно установить git на хостинге, чтобы делать push локально и затем pull на сервере для переноса сделанных изменений. Если хостинг не позволяет установить git, то можете воспользоваться плагином git-ftp (переносит измененные файлы по ftp)
    2. Делать копию базы можно, но с какого-то момента это становится слишком затратно, да и нужную вам комбинацию данных придется искать. Решается это наполнением базы тестовыми данными (ищите seed в поиске). Развивая проект вы дополняете и сидеры. Это позволяет держать базу в атуальном виде, а также (!) откатываться к предыдущим версиям и там генерировать базу для именно этой версии. Кроме того сидеры позволяют легко экспериментировать, т.к. пересоздание базы занимаетс секунды.
    3. Для изменения структуры базы данных применяются миграции (migration). Это описание того, какие поля, таблицы, индексы добавляются/удаляются, а также трансформирование данных. Создав миграцию локально и протестировав на локальных данных вы переносите ее с помощью git на сервер также, как и весь остальной код. Остается только запустить миграцию на сервере и ваша БД будет трансформирована как вы указали.

    Конечно, многое зависит от того, каким фреймворком вы пользуетесь. Подавляющее большинство позволяют создавать и сидеры, и миграции.
    Чтобы было проще представить, вот ссылка на документацию Laravel по этой теме: https://laravel.com/docs/8.x/migrations
    Ответ написан
    Комментировать
  • Есть ли смысл покупать Fork?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Если вы используете Sublime Text, то плагин GitSavvy - очень удобное средство. Настолько просто как там не делаются основные операции даже в PHPStorm. Кстати там очень простой способ добавления отдельных изменений в stage, а не целых файлов.
    Для мержинга конфликтов можно использовать любой сторонний продукт для сравнения файлов, например Meld.
    Ответ написан
    Комментировать
  • Как в Git удалить файл из коммита, если уже запушил?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Если package-lock.json - это новый файл, то ваша команда делает что-то не так... SagePtr уже пояснил выше почему этот файл должен быть в репозитории.
    Если у вас этот файл изменился, то значит ВЫ делаете что-то не так... Скорее всего вы использовали команду npm update вместо npm install. Последняя устанавливает не новые версии пакетов, а именно те, которые указаны в package-lock.json. Это необходимо, чтобы все члены команды использовали одинаковые версии пакетов, иначе - жди неожиданностей.
    Ответ написан
    Комментировать
  • Русскоязычный Torrent-трекер с открытым API. Есть ли такие?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Изучите как это сделано в Elementum Nova (плагин для медиацентра KODI).
    В настройках плагина можно указать качество фильма. Фактически он ищет по трекерам и парсит страницу, выдергивая из нее то что нужно и фильтруя торенты с наибольшим кол-вом пиров/сидов. Работа с трекерами унифицирована через описание особенностей в json-файле.
    KODI можно установить на любой ОС как обычное приложение и попробовать.
    Ответ написан
    Комментировать
  • Как лучше выстроить процесс работы через гит если есть develop и master ветки?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Стандартный в qna ответ про git flow на самом деле не не всегда является верным...
    У вас масштабный проект и вы периодически выкатываете релизы? Возможно вам достаточно использовать упрощенный flow без ветки dev?
    https://qna.habr.com/q/1046166#answer_2047516
    Ответ написан
    Комментировать
  • Как провести решение конфликтов в двух ветках при слиянии посредством через Pull Request?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Странно что вам в master еще не прилетела какая-нибудь недоделанная фича... ;)

    Давайте ответим на вопрос: Для чего вам нужен dev? На самом деле не для разработки, как вы думаете, а для тестирования фич. Правильно?
    В связи с этим ваша проблема решается следующими шагами:
    1. Переименовать dev в stage (test и т.п.) и забыть что там ведется разработка.
    2. Все фича-ветки должны создаваться от master.
    3. После завершения фичи она мержится в stage и проверяется. Можно даже без PR, т.к. теперь никакой хлам принципиально не может попасть в master.
    4. Если все в порядке, из фича-ветки делаете PR в master.
    5. stage можно иногда просто сносить и пересоздавать с головы master, чтобы история была красивее. ;)

    PS: Это какая-то мания у команд - иметь ветку dev... "Мы же разработкой занимаемся - у нас должна быть ветка dev!". Так что ли?
    Не всякому проекту нужна ветка dev! Точнее так - если у вас есть ветка dev, то у вас должна быть и ветка release и вы должны обновлять приложение большими релизами с определенной подготовкой к ним.
    Ответ написан
    Комментировать
  • Курс или полный гайдлайн по git?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Комментировать
  • Как в Laravel связать 4 модели?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Вам не кажется, что вы пытаетесь изобрести один запрос для решения нескольких совершенно разных задач? Вряд ли это положительно отразится на скорости работы приложения.
    1. Когда вы отображаете список отелей, то вряд ли вам нужен полный список удобств, да еще сгруппированный... Просто где вы их собираетесь отображать? Может достаточно кол-ва или каких-то важных, заведомо выбранных удобств (бесплатная парковка, например)?
    2. Когда вы будете искать отели по критериям, то там будет совершенно другой запрос.
    3. Все эти удобства нужны только при отображении одного отеля. Так почему не сделать несколько запросов?
    $amenities = $hotel->amenities()->with('groups')->get();
    а потом с помощью методов Collection сгруппировать их так, как вашей душе угодно.
    Ответ написан
    Комментировать
  • Как правильно реализовать фильтр тегов по определённому условию?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Мне кажется, что вам нужно посчитать кол-во тегов у интересующих вас статей и вывести статьи в порядке убывания этого числа.
    Ответ написан
    Комментировать
  • Доступ ко многим через отношения. Как подобраться?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Модели (и отношения соответственно) нужны в том случае, когда вы собираетесь работать с ними как с моделями, т.е. изменять, сохранять, использовать другую "магию". Но если вам нужно получить данные, которые вы не собираетесь изменять (отобразить, посчитать, использовать в других запросах), то используйте для этого обычный Query Builder (https://laravel.com/docs/8.x/queries) и делайте любые join'ы, какие заблагорассудится.
    Имейте в виду, что не всякий запрос возможно (или удобно) делать с помощью Eloquent, особенно когда речь идет о функциях агрегирования.
    Ответ написан
    1 комментарий
  • Как при создании поста получить ID и название рубрики?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Каждая кнопка "Создать запись" у вас должна быть внутри отдельной формы, в каждую такую форму вставляйте скрытый input с id рубрики. Это если хотите использовать POST.
    Можно, как вы написали, с помощью route('user.post.create', ['rubric' -> $rubrics->id]). Суть та же.
    Главное:
    В методе контроллера, возвращающем форму, получаете id рубрики и передаете ее скрытым input'ом в саму форму.
    Ответ написан
    Комментировать
  • Как удалить коммит в gitLab?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    git reset --hard <последний перед удаляемыми коммит>
    git push -f
    Ответ написан
    1 комментарий
  • Как сделать merge в ветку git-flow?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    А нужен ли вам git-flow?
    Насколько я понимаю, опыта в git у вас почти нет, но вы собираетесь применить сразу энтерпрайз-решение. git-flow подразумевает использование релизов. В связи с этим и строится набор веток и их взаимодействие. В подавляющем большинстве случаев релизы не нужны, а значит и процесс будет другим.
    Упрощенный процесс хорошо расписал опытный человек здесь: https://qna.habr.com/answer?answer_id=1552111#answ...
    Это работает даже если у вас в команде несколько человек, не говоря уже об одном разработчике. Проверено на себе.
    Ответ написан
    Комментировать
  • Каким способом можно реализовать настройки пользователя, зависящие от его роли?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Laravel. Иерархический RBAC для самых маленьких

    Еще ни разу у меня не было повода сделать редактирование роли в админке... Дать тупому юзеру редактировать роль? Не думаю что в проектах масштаба "Laravel" стоит этим заморачиваться.
    Ответ написан