Задать вопрос
  • Как объединить 2 компонента VUE в blade LAravel, если их нельзя объединить?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Подключать отдельные JS файлы с отдельными вьюхами для разных blade шаблонов.
    Ответ написан
  • Какой запрос выбрать для скопа?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Второе - не совсем по теме Eloquent'а. Он про магию, и тут скоупы приходятся к месту. А если нужны будут еще условия? Ну, допустим остаите первым вызов этого метода, а если нужны будут еще условия в виде методов? Вот для чего были созданы скоупы, так что первый вариант - однозначно лучше.

    Далее: Product:: под капотом как раз и делает (new Product)-> , только кроме этого он может делать и что-то другое, о чем вы не знаете, поэтому я бы использовал Product:: хотя бы ради этого и какой никакой стандартизации.

    Далее: почему бы не сделать $user->products()->whereSlug($slug)? Учитывая контекст, смею предположить что именно такой запрос вам нужен не так уж и часто, а значит это - неплохое решение. Нужен будет эктив - ну добавляете скоуп в модель Product и имеете счастье, типа $user->products()->whereSlug($slug)->isActive(). Последние два метода относятся к конечной модели Product, а значит их дублировать не нужно, а вот релейшены в разных моделях (
    $user->products(), $page->products(), $something->products()
    ) - нужно, так что это правильный вариант.

    Тем более, Product не должен быть ответственен за методы юзера (как в вашем втором варианте), а если туда напихать еще несколько от разных моделей, со всякими $active = true - получится каша.

    TL;DR: Придерживайтесь того, что предлагает Eloquent, и будет вам счастье.
    Ответ написан
    22 комментария
  • Почему выводит ошибку Call to undefined method routeNotificationFor()?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Смотрите ответ Алексей Скляров . Нотификации в Laravel заточены под отправку юзерам, отправить их "глобально" нельзя, только если буквально отправить каждому юзеру отдельную нотификацию. В виду этого, модель User по дефолту юзает трейт Notifiable, который внутри и содержит метод routeNotificationFor, отвечающий за связыванние данных юзера (номер телефона, эмейл, релейшены в базе) и самих нотификаций.

    Да, первый аргумент - notifiable_id & notifiable_type. Собственно, по дефолту это всегда айди юзера и значение из морф мапа для модели юзера, либо неймспейс + название класса юзера.
    Ответ написан
    Комментировать
  • Где можно найти options для ControllerMakeCommand?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Как это нету? Все есть:
    /**
         * Get the console command options.
         *
         * @return array
         */
        protected function getOptions()
        {
            return [
                ['model', 'm', InputOption::VALUE_OPTIONAL, 'Generate a resource controller for the given model.'],
                ['resource', 'r', InputOption::VALUE_NONE, 'Generate a resource controller class.'],
                ['invokable', 'i', InputOption::VALUE_NONE, 'Generate a single method, invokable controller class.'],
                ['parent', 'p', InputOption::VALUE_OPTIONAL, 'Generate a nested resource controller class.'],
                ['api', null, InputOption::VALUE_NONE, 'Exclude the create and edit methods from the controller.'],
            ];
        }
    Ответ написан
    Комментировать
  • Как после удаления данных из таблицы, задать новые ID записям и обновить auto increment?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Нет, ничего обновлять не нужно. Если у вас появляются миллионы записей в день в одной таблице - используйте uuid.
    Ответ написан
    Комментировать
  • Комментарии - древовидные или линейные?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Мое имхо - все зависит от нужд. На ютубе, например, я бы не хотел видеть древовидные комменты с большой вложенностью. Возможности отвечать отдельным людям полностью меня удовлетворяет.

    С другой стороны, на реддите такое я бы не хотел видеть.
    Ответ написан
  • Как использовать БД WordPress для Laravel?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Если вы мигрируете с ВП на Eloquent/Doctrine, то переделайте базу под себя. Напишите пхп скрипты, в которых частями будете со старой базы создавать новую, пока все не получится как надо. Тогда можете смело удалять старую базу, и производить тоже самое с продакшеном.

    Если же нужно поддерживать и то и то, то тут только репозитории. Непонятно что там изменится в ВП в будущем, но в таком случае и сам Eloquent - не лучшее решение, уж лучше маппить доктрину. Если же нужно быстро и костыльно, то с вашим corcel'ом тоже выйдет.
    Ответ написан
  • Почему Node+Redis сервер не видит ивенты вызываемые Laravel (5.7)?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    1) проверьте, не закеширован ли конфиг. Сделайте php artisan config:clear
    2) "Ивенты почему-то обрабатываются только через слушателя" - потому что используете интерфейс ShouldBroadcast а не ShouldBroadcastNow. В вашем случае ивенты сначала попадают в очередь, а потом она их раскидывает.
    Ответ написан
    Комментировать
  • Как привязать несколько однотипных таблиц БД к одной Entity в Symfony?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Зачем? БД сама разберется как ей легче, главное индексы расставьте, легче ей от десятка таблиц не станет, а в коде станет неподдерживаемая помойка.

    Не делайте так.
    Ответ написан
    Комментировать
  • Проблема с циклом foreach?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Как я понял, вы хотите, что бы "части кода" запускались асинхронно, верно? Так вот не выйдет. В других языках - да (js к примеру). С какими-то хаками - тоже да. Очереди - да, но все это займет больше времени чем выполнение вашего кода разом, это не имеет вообще никакого смысла в этом контексте, да и вам попросту рано туда.

    Не морочьте себе голову. Хотите оптимизировать - делайте на SQL, трех запросов в общем тут должно быть более чем достаточно.
    Ответ написан
    3 комментария
  • Какой стек технологий понадобиться для создания программы входа в Steam?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    1) пользователь, при желании, легко перехватит ваш пароль к аккаунту, и боротся с этим бессмысленно.
    2) можно сверху накинуть оверлей на игру. По идее - не так уж и сложно, но поддерживать такую ...
    5) какие данные перехватывать? Максимум, что вы можете - дергать апишку стима и смотреть какую-то статистику по аккаунту, но с игрой самой по себе у вас ничего не выйдет.

    В остальном же да, Олег Погребняк верно порекомендовал C#, как подходящий для Win приложений язык, но к указанным библиотекам то, что вы хочете - не имеет отношения вообще. Предположу, что эта программа нужна в каком-то компьютерном клубе для контроля - в таком случае вам нужен реальный и полноценный клиент стима, и тут вам помогут параметры запуска клиента.

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

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Aim?) Вычислять - никак, но можно перехватывать траффик, дешифрировать и строить картину у себя. Но думается мне, что раз вы задаете такие вопросы, вам слииишком рано в это лезть.
    Ответ написан
    4 комментария
  • Как запустить сервер и сервер ли это?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Попробуйте добавить параметр к serve:
    --host 192.168.1.10
    Ответ написан
    1 комментарий
  • SPA vue&laravel?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Можете, но есть нюансы:
    - не всегда вам нужна именно веб версия, иногда нужны лишь данные. В таком случае использование куков - не очень приятное занатие, особенно если оно под это не заточено (а большинство вещей - не заточено) )
    - когда фронтер захочет тестить фронт под разными учетками, имея только соц. авторизацию, он сильно захочет какую-нить токенную авторизацию)
    - для сокет серверов, при правильной реализации, не нужен юзер, только его достоверный id. Не знаю как там oauth (passport), но jwt точно может это предоставить без лишнего оверхеда

    В остальном же кукисы - вариант ни чуть не хуже, и даже лучше, если вам не нужна внешняя авторизация (авторизация с помощью вашего продукта)
    Ответ написан
    Комментировать
  • Как добавить значение в модель перед вставкой в базу?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Используйте это: https://laravel.com/docs/master/eloquent#observers

    Насколько я знаю, вышеуказанный метод уже deprecated как минимум в новых версиях.
    Ответ написан
    Комментировать
  • Как использовать laravel horizon?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Ответ написан
    Комментировать
  • Location - Trait или Embeddable?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Я бы предпочел первый вариант, так как он позволит в случае чего изменить аннотации. К тому же второй вариант форсит вас использовать аннотации, а первый дает свободу выбора, позволяет использовать тот парсер, который вы используете в проекте (если не используете аннотации, например).
    Ответ написан
    Комментировать
  • Laravel как сделать что бы в ресурсы отдавалась пагинация, загруженных связей?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Так делать нельзя. ->with() - это магия, которая сама разбирается с тем, как ей вытаскивать данные. Вы указываете нужные условия в колбеке, но далее ->with() вызывает ->get() и сам все разруливает. К тому же get возвращает EloquentCollection, на котором и основана вся дальнейшая работа с реляциями, а своими действиями вы пытаетесь подсунуть ему обьект пагинации. Очевидно, что такое работать не будет.

    Ваша переменная называется model, так что я предположил что там она одна. В таком случае такой вариант прокатит:
    $reviews = $model->reviews()->paginate();

    Если же нужно сделать такое для нескольких моделей сразу, то это делается только отдельными запросами. ->with() там тоже не поможет, только в цикле вышеуказанный код.
    Ответ написан
    Комментировать
  • Как организовать параллельное выполнение N заданий в очереди?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Да, запускаете несколько воркеров (той же командой) и все.

    PS: Вместо database как драйвера лучше использовать beanstalkd.
    Ответ написан
    3 комментария