• Почему может не работать функция dd в LARAVEL?

    @jazzus
    Браузер хром - инструменты разрабочика - Network - выделяешь в списке запрос с dd - Preview.
    Или делаешь http тест запроса и дебаг отрисуется прямо в терминале.
    Ответ написан
    Комментировать
  • Как обновить пароль пользователя?

    @jazzus
    Попробуй заменить это
    $this->user->update([
                'password' => Hash::make($request->input('new-password'))
            ]);

    на
    $user = Auth::user();
    $user->password = Hash::make($request->input('new-password'));
    $user->save();

    и убрать непонятную мидлварю из конструктора, которая ничего не делает, убрать юзера из свойств контроллера, заменить проверки из контроллера на правила валидации password, required_with и different. Вообще ,такие "непонятные" проблемы потому что тесты не пишутся. Тесты быстро покажут что и где + удобно дебажить процесс, а не тыкать формы и лазить по базам. Рекомендую писать перед разработкой.
    Ответ написан
    Комментировать
  • Carbon, как к одной дате выведенной из базы прибавить другую?

    @jazzus
    если без модели (в продолжении говнокода)
    Carbon::parse($information->times)->addDays(30);
    Ответ написан
    Комментировать
  • Как исправить ошибку миграции?

    @jazzus
    Исправь везде
    $table->increments('id');
    на
    $table->id();
    Ответ написан
    2 комментария
  • Как в laravel выбрать последние 10 записей без изменения сортировки?

    @jazzus
    Еще способ
    Model::orderByDesc('id')
        ->take(10)
        ->get()
        ->sort();
    Ответ написан
    Комментировать
  • В чем проблема работы с АПИ?

    @jazzus
    В таких ситуациях плотно работают с кодом:
    Дебаг всего подряд
    Проверка учетных данных (может на проде отличаются)
    Проверить логику запросов к апи. Например в sdk пейпал есть разные классы для подключения к prod/dev и то что работает на локалхосте не будет работать на проде с одинаковыми учетными данными.
    Посмотреть доки апи
    Пообщаться с тп апи
    env('SEO_RANK_API_KEY') убрать в конфиг и вызывать конфиг

    пс магию точно ждать не стоит.
    Ответ написан
  • Как создать временные роли на сайте?

    @jazzus
    Судя по вопросам, самый сложный способ)
    Добавить поле даты активности. Купил на месяц записываешь в active_at = now()->addMonth()
    Проверять с помощью политик авторизации. Правило
    $enity->active_at >= now()
    Ответ написан
    Комментировать
  • Как организовать такой поисковый запрос groupBy + having Laravel?

    @jazzus
    попробуй так
    $booksQuery->whereHas('tags', function ($q) use ($filteredTags) {
        $q->whereIn('id', $filteredTags);
    })
    ->whereDoesntHave('tags', function ($query) use ($filteredTags) {
        $query->whereNotIn('id', $filteredTags);
    })->get();
    Ответ написан
    5 комментариев
  • Отредактировать sql перед запросом в базу?

    @jazzus
    Ничего не мешает оставить модель App\User
    просто новые будут генерироваться в models
    ну или DB::table('table')->update(['model_type' => 'App\Models\User'])
    Ответ написан
  • Как сохранить multiple поле со связью в Laravel?

    @jazzus
    Связь нужна ManyToMany т.к. посты могут иметь общие теги иначе в тегах нет смысла. Если планируется добавлять теги к разным моделям (к постам, проектам, вопросам) то полиморфную Там прямо пример с тегами.
    Массово добавлять/синхронизировать через метод sync https://laravel.com/docs/8.x/eloquent-relationship...
    Ответ написан
    Комментировать
  • Laravel как сделать выборку многие ко многим публикации в странах?

    @jazzus
    В контроллере
    Country::withCount('posts')
           ->with('posts')
           ->orderByDesc('posts_count')
           ->get();

    Во вьюхе
    {{$country->posts_count}}
    @foreach ($country->posts as $post)
         {{$post->title}}
    @endforeach
    Ответ написан
    Комментировать
  • Как программисту отдыхать и организовать распорядок дня?

    @jazzus
    Мда, сколько же здесь страждующих. Аж грустно становится, какая по сути негативная среда. Я себе айти другим представлял. Мне кажется есть 2 варианта решения большинства проблем.

    Если программированием заниматься не нравится

    Менять деятельность срочно. Ждать 5-7 лет ошибка. Как и оправдывать все зависимостью от дохода. Я однажды занимался нелюбимым бизнесом и не знал как свалить. Зарабатывал неплохо (200-300), но была квартира-машина в кредит, другие кредиты и обязательства, постоянно вкладывал в автоматизацию, чтобы освободить время. Пока волей случая бизнес резко не навернулся, я продал ипотечную квартиру и мне ПРИШЛОСЬ от всего отказаться и заняться тем чем давно хотел попробовать. В итоге через 2 мес,как оказался без всего я купил первую квартиру уже без ипотеки. Потом много чего еще на что прошлым бизнесом не заработал бы за всю жизнь. Кредиты с тех пор ни разу не брал. Кайфовал от процесса, свободного времени стало в разы больше. Оказался в другом мире. И если бы бизнес не навернулся так и занимался бы фигней. А оказалось все бросить очень просто и быстро. И необходимо. Поэтому совет №1 - срочно менять деятельность. Нафиг любые прогнозы, ты даже не представляешь где можешь оказаться.

    Если программированием заниматься нравится

    Не работать сидя. Сидячая работа убивает и воздействует на продуктивность, настроение и т.д. Когда ты сидишь, организм готовится тупить и отдыхать. Кровь плохо функционирует. Гормональный фон плохой. Большинство, кто сидит часами каждый день имеют хронические проблемы со здоровьем физическим и психическим. Не замечают т.к. привыкли. И по статистике проживут меньше. Курить и бухать гораздо полезней чем сидеть. И веселей. Поэтому. Стол для работы стоя, веселая музыка, спорт-атрибуты и много движений. 8 часов такого программирования в день и через месяц будешь похож на спортсмена. При этом будешь выполнять задачи горадо быстрее, голова от притока крови работает лучше, настроение лучше и не будешь отвлекаться на Интернет. Правда, я никогда не писал код за деньги и не копался в чужом коде (если только на Тостере :)). Такой деятельностью тоже наврядли бы смог заниматься. Поэтому в твоем случае я бы смотрел в сторону первого варианта.
    Ответ написан
    7 комментариев
  • Как в Laravel в контроллере вытащить записи по тегу из PIVOT таблицы?

    @jazzus
    Таблица taggables используется для полиморфной связи, чтобы добавлять теги к любым моделям. В данный модуль не вникал. Но судя по первой строчке из описания нужно добавить трейт HasTags в модель Post. В трейте уже будут все отношения с методами без прописывания связей и т.д.

    Получить все посты с тегами можно так
    Post::withAnyTags(['first tag', 'second tag'])->get();

    хотя название метода плохое и может путать т.к. with в Laravel имеет другую функцию чем whereHas. Лучше было бы hasAnyTags

    пс перед добавлением модулей не будет лишним почитать зачем нужен фреймворк, отношения и почему уже можно не использовать join.
    Ответ написан
    1 комментарий
  • Как сортировать по количеству записей из связанной таблицы Laravel?

    @jazzus
    Самое простое и производительное - добавить поле scores в таблицу adverts
    Инкрементить +10 баллов при ивенте лайк
    Декрементить -10 баллов при ивенте дизлайк
    Сортировать по orderByDesc scores

    Сюдаже, в последствии можно добавить новые расчеты ранжирования с добавлением нового функционала
    Например
    инкрементить +20 баллов при добавлении юзером в избранное
    и множество других метрик, которые просто покрываются тестами (проверка что при событии scores увеличился/уменьшился)
    и таким образом формировать крутую сортировку)
    Ответ написан
  • Laravel hasOneThrough или belongsToMany. Как соединить три таблицы?

    @jazzus
    Одна квартира не может принадлежать нескольким домам и наоборот.
    Поэтому
    house hasMany apartments
    в apartments добавить house_id
    Запрос
    Apartment::with('house.street')
    и в шаблоне $apartment->house->street
    Ответ написан
    1 комментарий
  • Как лучше сделать админку в проекте на Laravel?

    @jazzus
    3) Ничего не использовать, написать самому с нуля.

    Свое лучше. Не придется тащить ненужный функционал, непонятно как написанный. Не нужно думать о модификациях/обновлениях. Пишешь только тот функционал, который тебе нужен. Тем более в Ларавел уже есть все инструменты чтобы это делать быстро (ресурсные маршруты/контроллеры/политики). Фронт можно минимальный, без красивостей "чтоб работало"
    Ответ написан
    2 комментария
  • В чем смысл юнит-тестов?

    @jazzus
    Я как фанат тестов, считаю своим долгом здесь отметиться. Скажу так. Покрывать тестами существующий функционал унылый отстой)) Скучная рутина. Я юзаю тесты исключительно в режиме TDD. Пишу перед разрабткой. И данный способ рекомендую. И в последнюю очередь ради тестирования. Тесты это самое лучшее тз, на котором не схалтуришь. Ты сам себе в тестах ставишь сложную задачу, описываешь результат и тестам пофигу как ты его добьешься. Сам процесс разработки становится горазо более интересным. Я вообще вначале пишу тесты на бумаге ручкой)) Ну не сами асерты естественно, а такое оглавление из задач. затем уже код. И когда фича написана в тестах только потом приступаю к разработке (про фронт даже в мыслях нет). Просто запускаешь тесты и пишешь код пока они не станут зелеными. Пишешь легко, быстро и со свободной головой. Ну то что тесты будут тестировать твой код в будущем, что ты можешь небоясь кардинально рефакторить логику и даже архитектуру это понятно. И то, что это самая актуальная документация. Это попса. Короче, я как тесты попробовал, ни одну фичу без тестов не писал. Даже непонятно с чего начинать писать код, если тестов нет. Роуты писать или кнопку.. Ужас. Короче рекомендую, как один из самых важных процессов в программировании. Писать тесты после функционала не рекомендую - очень скучно, не эффективно, скорее всего потеряется интерес и забьешь. Только tdd
    Ответ написан
    Комментировать
  • Есть ли сниппеты в word?

    @jazzus Автор вопроса
    Вставка - Автотекст - сохранить.. Далее печатаешь название и ворд предлагает вставить сохраненный текст с сохранение форматирования.
    Ответ написан
    Комментировать
  • Можно ли получить коллекцию в которой каждый объект содержит все дочерные записи одним запросом?

    @jazzus
    Author::with('books')->get(); и получит коллекцию авторов с их книгами, если hasMany связь есть.
    Ответ написан
    Комментировать