• Как правильно менять дизайн в Laravel?

    Alex_Wells
    @Alex_Wells
    procode, нет, в этом смысла нету. make:auth публикует ассеты (в данном случае - вьюшки) в папки проекта специально для того, что бы их могли менять. Тоже самое и с контроллером - вы можете переопределять нужные вам методы, и именно для этого он попадает в ваши директории, а не используется откуда-то из депенденсис в /vendor.
  • Не могу загрузить Laravel?

    Alex_Wells
    @Alex_Wells
    Максим Фикс, читайте ответ JhaoDa, особенно последнее предложение. Черт возьми, тут даже документация не нужна, просто гугл..
  • Не могу загрузить Laravel?

    Alex_Wells
    @Alex_Wells
    Ну загляните в логи, посмотрите.. и почему .env нету? Он обязан там быть, если только у вас не чудесные, самонастраиваемые конфиги, в чем я сомневаюсь.
  • Как объединить 2 компонента VUE в blade LAravel, если их нельзя объединить?

    Alex_Wells
    @Alex_Wells
    jazzus, зачем "и второй"? Выборочно, там где нужна одна вьюха - там файл с ней, где другая - там другой.
  • Какой запрос выбрать для скопа?

    Alex_Wells
    @Alex_Wells
    jazzus, у меня чуство, что вы 24/7 обновляете страницу тостера. Отвечаете моментально)
  • Как взять количество элементов между двумя датами?

    Alex_Wells
    @Alex_Wells
    Эльнур Тажимбетов, в заголовке написали одно, в вопросе совсем другое, в ответе - вообще в перемешку. Определитесь, чего вы хотите.
  • Какой запрос выбрать для скопа?

    Alex_Wells
    @Alex_Wells
    jazzus, ну, если вы не хотите дублировать, и уверенны, что указанный запрос НИКОГДА не будет менятся, если только не во всех местах сразу, то выносите в репозиторий. Если вы не уверены в этом, а это так в большинстве случаев, то оставляйте как есть)
  • Какая правильная архитектура для restapi на nodejs?

    Alex_Wells
    @Alex_Wells
    galliard, потому что системы типов у ТС не существует. Там есть только статический тайп-чекинг, что приводит к тому, что названия классов все равно нужно передавать отдельным аргументом в функции и конструкторы, к тому, что классы не знают о собственных дженериках внтури методов, к тому, что нельзя проверить переменную на наследование интерфейса и так далее. В целом система типов ТС не заточена под ООП, а вместо этого использует что-то другое, название чего я забыл, но суть в том, что идея - в проверке наличия конкретных методов и пропов, а ООП - лишь метод представления для удобности. С таким подходом я в корне не согласен по многим причинам, некоторые из которых:
    - ужасный рефакторинг
    - нужда запоминать кучу всего, вместо того, что бы это делала IDE
    - причины, указанные выше

    Смотрел видео по какой-то конференции, где обьясняли, в чем задумка ТС. Если интересно - могу порытся в истории, но это было давно, так что не факт, что найду.

    В тоже время у ПХП вообще нету дженериков, НО типы - реальные. Можно узнать типы аргументов функции, например, спарсить и отобразить в доке, в то время как в ТС для этого потребовался бы отдельных список типов. Применение - не только это, и тут проще было б сравнить джаву и тс. ПХП так же ближе к джаве по этой причине, ежели ТС.

    Более того, в ПХП по-дефолту если указан тип - переменная non-nullable. Из-за того, что IDE пока что не сообщают об этом - иногда возникают проблемы, но со временем все станет лучше, и non-nullable останется. В ТС же вообще похрену - переменная может быть чем угодно, хоть null, хоть undefined, хоть NaN. Опять же, гуглится kotlin non-nullable vs java

    Да, система типов в ПХП не идеальна - но ей есть куда расти, в отличии от TS. Тот в тупике, и преимуществ реальной системы типов он не получит никогда. А вот пхп с каждым годом становится лучше, хоть это и происходит пипец как медленно.
  • Какой запрос выбрать для скопа?

    Alex_Wells
    @Alex_Wells
    jazzus, $user->products()->whereSlug($slug); - вот что я предложил изначально. И оно либо так, либо так же но в методе репозитория, никак по другому.
  • Какой запрос выбрать для скопа?

    Alex_Wells
    @Alex_Wells
    jazzus, коммент5: не важно, даже если бы это был UserProduct, или UserDetails - это отдельная модель, и она отвечает сама за себя. А иначе в чем вообще смысл выносить это в отдельную модель? С такими успехами можно вфигачить все в json массив в юзере и все.

    коммент6: второй вариант, конечно-же. Вы спрашиваете у юзера, какие у него есть продукты, а не у продуктов, кто из них принадлежит юзеру. Ну первый вариант же проще и логичней звучит, разве нет?

    public function scopeOfUserBySlug($query, $slug)
        {
             return $query->where('user_id', Auth::id())
                          ->whereSlug($slug);
        }

    Извините, но это полная х.. дичь) Что where('user_id'), что фасад auth внутри scope, что whereSlug, что и сама суть всего скоупа. Это пример того как делать НЕ НУЖНО.
  • Какой запрос выбрать для скопа?

    Alex_Wells
    @Alex_Wells
    jazzus, коммент1: да, примерно так. Только лучше dependenncy injection'ом его резолвить, мало ли какие у него зависимости могут быть. Гугли eloquent repository example

    коммент2: Я бы не стал, потому что мое имхо - это лишний оверхед. Мб с доктриной (другая orm популярная в php комьюнити) они бы и зашли мне, но не с елоквентом.

    коммент3: Если у вас запросы повторяются - то либо у вас что-то с приложением не так, либо выносите в класс-репозиторий)

    коммент4: ну потому что надо использовать отношения напрямую, а не городить отношения из скоупов (по сути, ваш scopeOfUserBySlug это такой себе костыль для самодельных отношений, но за вас уже это давно сделали)
  • Какой запрос выбрать для скопа?

    Alex_Wells
    @Alex_Wells
    jazzus, опять же, юзер не должен быть ответственен за собирание каких-то запросов. То, что вы хотите - называется репозиторий, гуглите. Но в рамках eloquent'а я бы не стал их использовать, а вместо этого просто бы инлайнил внутри сервиса, или даже контроллера нужный запрос.

    И нет, никаких проверок внутри запросов быть не должно и быть не может, ибо если вы захотите протестировать этот запрос, то вам что, создавать юзера с ролью в юнит тесте? Глупость. Проверяйте роль (а лучше - пермишен, роли это хрень) в входных местах (FormRequest'ы и/или контроллеры).

    tl;dr 2: просто следуйте докумнетации, за вас уже все придумали
  • Как передать объект в формате Resource из blade в VUE?

    Alex_Wells
    @Alex_Wells
    jazzus, он не в нем. JsonResource, сам по себе, вообще не хранит никаких данных кроме модели(ей), и только при вызове ->toArray() он начинает двигатся и выдает результат в виде обычного массива.

    В контроллерах оно работает только потому что лараька имеет встроенную миддлвейрь, которая и вызывает этот resolve. По факту разницы никакой (в контроллерах).

    На счет jsonSerialize я тоже ступил - он не отдает json, а отдает массив данных, которые должны будут переведены в json. Именно этот метод и интерфейс, откуда он взялся, позволяют делать json_encode($productResource) вместо json_encode($productResource->resolve()) или json_encode($productResource->toArray()).

    В общем то, что вы изначально написали - :object="{{json_encode($product->toResource())}}" - идеальный вариант.
  • Как передать объект в формате Resource из blade в VUE?

    Alex_Wells
    @Alex_Wells
    jazzus, ну так я про ресурсы и говорю) Вместо json_encode($product->toResource()) более лаконичный вариант с $product->toResource()->jsonSerialize() ну либо $product->toResource()->resolve(). Хотя в модели держать метод toResource - такое себе, ибо ресурсы работают и с коллекциями в том числе, а значит лучше использовать рекомендуемый способ, хоть и не такой красивый: (new ProductResource($product))->resolve() - но это уже такое.

    Я тоже был рад ресурсам, особенно они мне понравились после убогих fractal трансформеров, но они, как и все в ларавеле, набиты магией, и как только юс кейс выходит за рамки документации - начинается жесть(
  • Как передать объект в формате Resource из blade в VUE?

    Alex_Wells
    @Alex_Wells
    jazzus, хм, извиняюсь, немного спутал с моделями. Имел в виду метод jsonSerialize, из соответствующего интерфейса, который вызывает resolve. Попробуйте их оба, без response()->json(), соответственно - ну так, чисто из интереса)
  • Как использовать API закрытый для РФ?

    Alex_Wells
    @Alex_Wells
    Хм, странно. У меня с Украины все работает :/
  • Как передать объект в формате Resource из blade в VUE?

    Alex_Wells
    @Alex_Wells
    Читайте ответ ajaxtelamonid. Laravel делает тоже самое под капотом, где-то в миддлвейре (json_encode), только вы этого не видите. А раз вы не используете HTTP API - будьте добры энкодить вручную.

    Еще, если я правильно помню, у ресурса есть метод toJson(), но это не точно. Выглядеть будет чуть лучше, но по факту - тоже самое.
  • Комментарии - древовидные или линейные?

    Alex_Wells
    @Alex_Wells
    Владимир Дружаев, на реддите вам приходят нотификации, и по клику раскрывается нужная ветвь. На ютубе схожая система.