• Есть ли метод в Laravel, который устанавливает начальную дату для поиска информации в базе без первоначального её нахождения?

    agoalofalife
    @agoalofalife
    Team Lead
    Если просто запрос можно сделать так
    $from = date('2018-11-01');
    $to = date('2020-11-01');
    // или Carbon
    
    $from = Carbon::parse('2018-11-01')->toDateTimeString();
    
    Model::whereBetween('created_at', [$from, $to])->get();
    Ответ написан
    Комментировать
  • Для laravel есть готовое решение, чтоб по команде php artisan ..... делать бекап базы, и разворачивать ее с бекапа?

    agoalofalife
    @agoalofalife
    Team Lead
    Тут зависит от ваших хотелок. Но самый простой "велосипед" можно в течении минут 10 сделать.
    К примеру у вас mysql и есть утилита mysqldump.
    Соответственно добавляете команды, к примеру:
    php artisan backup:run
    php artisan backup:refresh

    В них заворачиваете ваш mysqldump, название возьмете из файла конфигурации database.php.
    Ответ написан
    Комментировать
  • Как на Laravel подключить контроллер header в другом контроллере, например как это реализовано в OpenCart?

    agoalofalife
    @agoalofalife
    Team Lead
    C opencart не работал, но в Laravel подключить один контроллер в другом звучит дико.
    Можно создать родительский и отнаследовать его.
    Но.. Крайне не рекомендую подходы из opencart тащить в Laravel.
    Прочтите документацию Laravel(на английском), потом еще раз.
    После расширение кругозора, вам придут решение на ваши задачи, но через инструменты Laravel.
    Ответ написан
  • Как подгрузить данные ajax по api на laravel?

    agoalofalife
    @agoalofalife
    Team Lead
    Нашел ответ, вот
    Ответ написан
    Комментировать
  • Что учить после верстки?

    agoalofalife
    @agoalofalife
    Team Lead
    Сверстать пару страниц - это только начало пути.
    Продолжайте верстать дальше, изучите другие темы:
    Препроцессоры, gulp, адаптив, резиновая верстка, flexbox, grid, БЭМ - плацдарм для изучения большой.
    В сумме хотя бы макетов 20 наберите, попробуйте поработать с Figma, photoshop и так далее.
    Параллельно можете разбавлять учебу JS, только чисто JS, не фреймворком и не Jquery и так далее.
    Например начните проходить это и от начала до конца.
    Ответ написан
    Комментировать
  • Как хранить информацию о полях, используемых в формах?

    agoalofalife
    @agoalofalife
    Team Lead
    В документации есть некоторые решение этой проблемы.
    Вы можете использовать components, subview, sections. Соответственно - можете нарезать свой макет как вам удобно и переиспользовать его.
    А касательно динамической подстановки полей в формах, какой профит вы получите?
    Наверное это будет по DRY, (Don't Repeat Yourself) только есть и обратная сторона:
    - форма - это так же и валидация, придется как то и это решать
    - внесете в проект своих наработок, которые только усложнят его поддержку другими людьми и вами.
    - потратите дополнительное время на разработку
    Взвесте все - лучшее враг хорошего.
    Ответ написан
    Комментировать
  • Как более производительней вносить и выводить из базы данных?

    agoalofalife
    @agoalofalife
    Team Lead
    Не совсем понято что значит 1, хорошо заданный вопрос это половина ответа.
    Если в базе данные есть данные которые не меняются, их можно закэшировать, получиться намного производительней.
    Ответ написан
  • Нормализация базы данных?

    agoalofalife
    @agoalofalife
    Team Lead
    Часто бывает что выгодно делать именно денормалазацию данных. Тут как везде борьба компромиссов.
    Я тут накидаю своих размышлений а у вас будет почва для дополнительных раздумий.
    Для наглядности я сюда схему прикрепил
    5fd339050f4b3128986508.png

    Нормализация
    Группы, инструменты, музыканты сейчас нормализованы, и они храняться в отдельных таблицах.
    Преимущества:
    - Мы можем переиспользывать эти данные
    - В других таблицах, это внешний ключ и мы получаем индекс
    - База следит за целостностью информации(то есть, если мы добавляем новый состав, группа должна существовать. Если мы захотим удалить группу, база данных может нам запретить это сделать так как у нас есть записи в таблице состав группы. Это уже настройки restrict or update) На первый взгляд не самое очевидное, но важное преимущество тем не менее.
    И вот почему, мы можем денормализовать эти таблицы, добавляя как строку в pivot table(таблица составов и остальные что ниже на диаграмме) вместо внешнего ключа:
    - Меньше запросов при insert
    - Если сделать индекс, не надо ходить за id в верхние таблицы, но ...
    Собственно весь мир стремиться к хаосу и код не исключение. Давая повод для вставки простой строки, мы провоцируем все это на хаос. Может вы знаете конечный список групп, но кто то не знает и может вставить что угодно, соответственно из за этого будет проблемы.

    Подход от бизнеса
    Стоит учитывать так же, что не всегда и не везде нужны например составы групп. Возможно требуется только актуальный сейчас, а те что были хранятся для истории. Тогда схему можно переорганизовать, и добавить хранение только текущих музыкантов, а историю с логом выносить в другое место.
    Следует задавать себе вопросы:
    - А как может быть дальше?
    - Какие могут быть выборки, вставки, добавление и далее?(возможно вам надо выбрать другой тип хранения, где отсутствует транзакции и очень быстрая выборка(MyISAM для примера)
    - Какое кол-во данных будет храниться?Что будет добавлять регулярно а что нет?
    И многие другие вопросы(они будут увеличиться с опытом)
    Отчасти усложнять сис-му в начале не стоит(но думать об этом надо), добавить индексы, денормализацию и так далее, делают скорее после под обстоятельства.

    Работа в самом коде
    Возможно вас пугает кол-во вставок при такой архитектуре. Это реляционная база данных, и связи одно из главных вещей(преимуществ) и она отражена в названии.
    В коде это организуется конечно иначе, в зависимости от использования подхода к работе с базой.
    Это может быть:
    - Active Record(Eloquent - laravel)
    - Data mapping (Doctrina - Symfony)
    Не углубляясь в подробности, часть будет инкапсулирована и вставка будет проще(в самом коде).
    Зависит так же от интерфейса, при том примере что у вас выше:
    В окне пользователя будет вводиться сразу вся информация.
    И это не всегда так, в зависимости от подхода(может быть SPA приложение), в одном окне может добавляться состав группы, в другом из form select, набираться музыканты в этот состав.
    Резюмируя - реляционная база это кончено связи. Можете попробовать организовать такое в NoSQL. Таблицы что выше, кто - то называет их справочниками.(можно организовать кэш по ним, если они не изменяются, а только переиспользуются и добавляются новые).
    Надеюсь хоть в чем то вам помог.
    Ответ написан
    1 комментарий
  • Как защитить API laravel + nuxt.js?

    agoalofalife
    @agoalofalife
    Team Lead
    Не до конца понял задачу, можно же выдать клиенту токен а в нем будут права для авторизации.
    Ответ написан
    Комментировать
  • Как осуществить авторизацию пользователя с другого сайта?

    agoalofalife
    @agoalofalife
    Team Lead
    Ошибка может быть в разных местах, тут мы не располагаем всей информации, получается можно высказать только предположения.
    - Ошибка в конфигурационных файлах. Проверьте что в ваших файлах .env или в config/database.php соответствует все параметры.
    - Проверьте что база(на которую вы возлагаете надежды) существует, и доступна любым другим способом(через терминал) по тем параметрам которые указываете в конфиг файлах.

    На счет кода
    Не знаю какой версии Laravel вы пользуетесь но trim есть уже с версии 5.4 документация

    Guzzle можно для начала получить из контейнера в методе login и настроить в service provider.
    Переменные можно не создавать а сразу передать куда надо, раз нет нужды в этом.
    $email = $request->email;
        $pass = $request->password;

    Здесь такая же история, snakecase это плохая практика, и создавать дополнительную вложенность в св-ах тоже нет необходимости.
    $emailUser = trim($request->data_form['email']);
     $passUser =trim($request->data_form['password']);


    Касательно задачи
    На сайте 1, который у вас клиент, надо будет дополнительно организовать middleware, для проверки session или можно написать свои кастомный user provider, документация
    Так же подумайте а будут ли у вас еще клиенты и возможно потребуется организовать какой-нибудь центральный сервис аутентификации.
    Ответ написан
  • Как лучше построить запрос информации о товаре с помощью Vuex?

    agoalofalife
    @agoalofalife
    Team Lead
    Если это отдельная страница и у него есть route, то как сказал Алексей выше
    Могу дополнить ссылкой из документации

    Соответственно варианта два:
    Загрузить данные после перехода: переходите по маршруту, в интерфейсе добавляете preloader например. После получение заменяете его на контент.

    Загрузить данные перед переходом: загрузить данные в хуке роутера, и завершить навигацию когда данные получены.

    Хотя возможно если вы пользуется хуком mounted, то vue-router вы не используете.
    Тогда вопрос нужен ли в вашем проекте vuex, так как router отсутствует. Оба инструмента следует использовать в не маленьких проектах.
    Ответ написан
    Комментировать
  • Laravel, как передать значение рейтинга в контроллер?

    agoalofalife
    @agoalofalife
    Team Lead
    Советую переформулировать вопрос, добавьте больше подробностей а лучше написать основу самой задачи.
    Значение с клиентской стороны вводиться пользователем или динамически конфигурируется?
    Ответ написан
    Комментировать
  • Где взять последнюю версию документации по API ФНС Проверка чеков?

    agoalofalife
    @agoalofalife
    Team Lead
    Последнею документацию можно официально получить от фнс
    Для этого надо подать заявку
    Официальный документ
    Ответ написан
    Комментировать
  • Как заставить PostgreSQL не различать буквы "Е" и "Ё"?

    agoalofalife
    @agoalofalife
    Team Lead
    Наверное еще можно исключить в базе эту пресловутую букву ё
    UPDATE table SET field = REPLACE(field, 'ё', 'е');
    В Mysql этот запрос заменит все буквы, если это подойдет, то удастся избежать проблем в будущем. В коде что то менят, себе яму копать.
    Ответ написан
    Комментировать
  • Laravel SSO единая аутентификация пользователя?

    agoalofalife
    @agoalofalife
    Team Lead
    Есть несколько вариантов
    - Первый вы создаете центральный сервер аутентификации, где вашим клиентам, отдаете токен, теперь вы можете в любом сайте реализовать auth через ваш ЦС и пользователь может зайти под одним логином и паролем. В частности на Laravel надо будет создавать кастомную auth
    - Второй - если вам надо чтоб пользователь сразу входил, то на n1 сайте вы можете отдавать клиенту cookie, на n2 сайте эти cookie получать и проверять их на сайте n1. В частности это просто сделать через middleware
    Ответ написан
    Комментировать
  • Массовые выплаты Яндекс. Кто настраивал?

    agoalofalife
    @agoalofalife
    Team Lead
    Наткнулся на ваш вопрос, и как говорится не смог пройти мимо.
    У меня есть такой опыт, я нашел готовое решение на PHP, сделал форк и добавил в composer.
    В принципе первый раз всегда медленный, но разобраться можно
    Пакет
    Читайте документацию, задавайте вопросы менеджерам)
    Удачи)
    Ответ написан
    2 комментария