Совет по наименованию мутаций от Ильи Климова и гитлаб чтобы получать отсортированный список мутаций, например, для пользователя. Называйте их {Object}{Action} userUpdate, userDelete, userCreate
@aswillhatter2 жыл бұрын
Спасибо, очень понятные и интересные ролики! Есть такой вопрос, как в graphql-playground задать формат DateTime при выпонении мутации? На варианты "1981-04-07 03:29:30", "1981-04-07T03:29:30" и подобные - выдаются ошибки
@pavelzloi2 жыл бұрын
Добрый день! Скорее всего в Вашей модели (которая обновляется через мутацию) не сказано что поля в которых хранится время имеют cast типа date. Читайте про переменную $dates в которой должны быть перечислены колонки базы хранящие даты. Если это сделать то в момент сохранения будет автоматически вызываться Carbon и преобразовывать любую дату в формат совместимый с базой. UPD. laravel.com/docs/5.5/eloquent-mutators#date-mutators
@compolomus97194 жыл бұрын
а что за магия в первом аргументе инвока? ну и на каждую мутацию, точнее на отдельное круд движение целый класс (файл)
@pavelzloi4 жыл бұрын
Это так называемый $root, там обьект к с контейнером Lighthouse со всеми системными настройками, классами и зависимостями, иногда он бывает очень полезен, но мне сложно понять почему его не сделалали опциональным и не включают по необходимости через DI ларавелевский (уверен это какой-то древний костыль без которого не получалось заставить Lighthouse работать).
@pavelzloi4 жыл бұрын
Кстати, забыл сказать про отдельные классы, это опционально (можно юзать встроенный функционал), но если сложность прокта выходит за рамки стандартного функционала (а она в любом случае выходит, ибо потом будет про авторизацию запросов апи токенами), то всё равно придётся создавать классы вручную и там реализовывать авторизацию.
@compolomus97194 жыл бұрын
@@pavelzloi да вроде сказал
@pavelzloi4 жыл бұрын
Это типа было class Answer2 extends Answer1 :)
@compolomus97194 жыл бұрын
Скоупы как то по удобнее, как мне кажется
@pavelzloi4 жыл бұрын
Поддерживаю, мне они тоже больше нравятся, поэтому я немного тупил когда описывал аргументы builder, ибо в случае с builder нужно use Builder из другого неймспейса брать.