Ответы пользователя по тегу Laravel
  • Алгоритм взаимодествия со сторонноим сервисом по API?

    @v__V__v
    Разработчик
    Все зависит от того, что вам нужно. Если нужно отправлять запрос немедленно, то пихаете отправку запроса везде, где вам нужно что-то отправлять, если когда это произойдет неважно, то везде пихаете постановку отправки в очередь, а обработчик очереди отправит запрос уже потом, когда до него доберется.
    Пихать конечно же надо везде, где это должно происходить: должно в куче контроллеров, значит пихаете нужный вызов в кучу контроллеров, только в одном - пихаете только в него.
    Естественно, отправка запроса или постановка в очередь должна быть вызовом нужного метода отдельного класса, а не повторяемой везде последовательности некоторого количества строк, реализующих необходимое действие. Но, если все ваши контроллеры являются потомками одного общего предка, то можно описать этот метод в нем. Для работы с очередями, кстати, в Laravel есть все необходимое.
    Ответ написан
    Комментировать
  • Как реализовать выбор города через url laravel?

    @v__V__v
    Разработчик
    Замените '{city?}' на '{city}' и будет вам счастье. На случай, когда город неизвестен, используйте в маршрутах любое удобное для вас значение по умолчанию: anycity, defaultcity, somecity, GothamCity, foofoobar, asdf... - что угодно.
    Ответ написан
    Комментировать
  • Как исправить потерю данных из сессии при одновременных HTTP запросах?

    @v__V__v
    Разработчик
    Все правильно думаете, самый простой и надежный путь - сменить хранилище корзины с сессии на БД.
    Тем более, что если покупатель отошел надолго, и сессия протухла, то не каждый станет набивать корзину заново, большинство закроет сайт и пойдет искать более приятных в общении конкурентов.
    Ответ написан
    Комментировать
  • Почему приходит пустой request поля в Laravel?

    @v__V__v
    Разработчик
    Попробуйте сменить имя поля с content на какой-нибудь myGreatContent, возможно у вас конфликт имен, с Laravel'ом такое случается.
    Ответ написан
    Комментировать
  • Cookie::get() не расшифровывает куки как исправить?

    @v__V__v
    Разработчик
    Если вы устанавливаете куки постановкой в очередь из посредника, то убедитесь, что ваш посредник находится в группе 'web' и идет после \App\Http\Middleware\EncryptCookies::class:
    protected $middlewareGroups = [
            'web' => [
                \App\Http\Middleware\EncryptCookies::class,
    
                \App\Http\Middleware\Your_Middleware_With_Cookies_Must_Be_Here_Or_Below::class,
    
                \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
                \Illuminate\Session\Middleware\StartSession::class,
                \Illuminate\View\Middleware\ShareErrorsFromSession::class,
                \App\Http\Middleware\VerifyCsrfToken::class,
                \App\Http\Middleware\CheckAuth::class,
                \Illuminate\Routing\Middleware\SubstituteBindings::class,
            ],
    Ответ написан
    Комментировать
  • Как скрыть уведомления CSRF в Laravel?

    @v__V__v
    Разработчик
    Гм. А зачем вам ее скрывать, тем более, что вы аяксом контент получаете? Допишите обработку кодов ответа отличных от 200, для 419 сделайте запрос нового токена и получайте контент дальше. Либо выводите сообщение, что пользователь должен обновить страницу, если получить и подставить новый CSRF-токен для вас затруднительно.
    Ответ написан
    Комментировать
  • Как сделать из сводной таблицы связь one to one?

    @v__V__v
    Разработчик
    А можно поинтересоваться, зачем вам нужна сводная таблица project_user с полями project_id и user_id? Не проще ли будет в таблицу projects добавить поле project_owner?
    Ответ написан
    4 комментария
  • Как забиндить две реализации интерфейса для гостя и авторизованного пользователя соответственно?

    @v__V__v
    Разработчик
    Auth::check() работает только после того, как пользователь прошел (или не прошел) аутентификацию. Судя по всему, вы используете вызов там, где это еще неизвестно, посмотрите, где вы свой сервис-провайдер подключаете. Если вы используете этот вызов в стандартном AppServiceProvider, то там он работать конечно не будет, лучше переместите в какую-то прокладку (middleware), как вам посоветовали выше.
    Ответ написан
    Комментировать
  • Как правильнее создавать EventSubscriber?

    @v__V__v
    Разработчик
    Все просто: если у вас только одно такое событие, то делается обработчик исключительно для него, если у вас есть группа схожих событий, то обработчик делается на всю группу. В вашем случае, если судить по названиям, приветствий по разным поводам будет много, так что логично сделать GreetingsMessageSubscriber. Более того, есть подозрение, что вам лучше вообще сделать MessageSubscriber, который будет ловить все события, требующие отправки сообщений в слак, т.к. действия будут одни и те же, разница только в уходящем тексте.
    Ответ написан
    Комментировать
  • Почему не отправляются уведомления в Laravel 8?

    @v__V__v
    Разработчик
    Скорее всего надо запустить обработчик очереди, сама по себе очередь ничего не делает, необходимо выполнить команду
    php artisan queue:work
    либо
    php artisan queue:listen
    Обратите внимание, что обработчик, согласно документации, должен быть запущен перед отправкой уведомлений в очередь!
    Ответ написан
  • Почему Laravel не отправляет письма через SMTP на адреса с двумя точками или +?

    @v__V__v
    Разработчик
    Laravel тут совершенно точно не при чем: у меня штук 7 эксплуатируемых проектов на Laravel разных версий (от 5.5 до последней 8.х - вчера обновлялся) и разных хостингах (не timeweb) - описанные проблемы отсутствуют.

    Тут дело или в smtp-сервере, или в поврежденных файлах фрейморка, или в каких-то пакетах, добавленных в Laravel дополнительно. Связана ли проблема с smtp-сервером проверить очень легко: отправьте тестовое письмо напрямую php-шным mail(). Если ушло - смотрите, что у вас с файлами/пакетами или в коде. Если проблема воспроизвелась - виноват smtp-сервер или конфигурация php.
    Ответ написан