Ответы пользователя по тегу Vue.js
  • Безопасно ли держать админку и пользовательскую часть в одном приложении?

    @jazzus
    Безопасно. Прежде чем отдать, что-то на фронт проверяй права на бэке. Для этого в Ларавел политики авторизации.
    Ответ написан
    Комментировать
  • Как разделить роли в laravel jetstream inertia и сделать админ панель?

    @jazzus
    самое простое без ролей is_admin добавить в users или проверку this id == 1 в модель и проверять с помощью политик https://laravel.com/docs/8.x/authorization
    Ответ написан
  • Почему axios.put возвращает статус 200 но не обновляет данные?

    @jazzus
    Прописать fillable модели
    Ответ написан
    Комментировать
  • Как сделать безопасные запросы между Laravel и Vue?

    @jazzus
    Если юзер не нужен на фронте - не возвращать юзера в методе, который его возвращает.
    Если нужен.
    Возвращать точный json ответ через Api Resource где указать только те данные, которые нужны. Совсем небезопасные данные (пароли, явки и тд.), которые точно не будут использоваться на фронте прописать в $hidden модели.
    Ответ написан
    Комментировать
  • Почем директива @json передает некорректно данные в атрибут?

    @jazzus
    :brands='@json($brands)'
    Ответ написан
    Комментировать
  • Как создать проект с помощью laravel из командной строки?

    @jazzus
    Самое простое установить Laragon. На русском языке, установит все что нужно. Проект создается в 1 клик.
    Ответ написан
    Комментировать
  • Laravel + Vue.js MPA (with code splitting)?

    @jazzus
    Здесь нужно использовать метод матрешки. Берешь blade, в него подключаешь нужные тебе компоненты vue, прописанные в app.js. Эти компоненты могут представлять собой набор других компонентов, которые подключены к нему с помощью import или прописаны в app.js.
    Ответ написан
    Комментировать
  • Как подключить Vue в пакете Laravel?

    @jazzus
    В папке resources – js – components будет тестовый компонент. Пишешь свой на его примере. Идешь в файл app.js подключаешь там свой компонент
    Vue.component('comp', require('./components/Comp.vue'));

    Запускаешь npm run watch в консоли
    Пока идет процесс, идешь в блейд шаблон и прописываешь там компонент
    <div id="app">
       <comp
       :users="{{json_encode($users)}}"
       ></comp>
    </div>

    users - это пропс, куда ты прокидываешь своих юзеров. Также можно фетчить прямо из компонента с помощью axios (в гугле примеры). И, как мне однажды подсказали на Тостере - div id="app" лучше добавить в главный шаблон app (обернуть все что в body). Это удобно т.к. не нужно прописывать везде этот div и иметь возможность использовать сколько хочешь компонентов на странице. Если компонент не появился на стр, сбросить кеш браузера и проверить его появление в vue dev tools.
    Ответ написан
    Комментировать
  • Как работать с history.replaceState + axios + vue?

    @jazzus Автор вопроса
    Сделал на бэке проверку типа запроса
    if ($request->ajax()) {
        return json;
    }

    теперь json не показывает по ссылке..
    урл, который строится в адресной строке изменил, чтобы отличался от axios запроса и сделал history.replaceState после запроса, чтобы урл строился по актуальным данным
    Не знаю правильно или нет, но информацию, как делать не нашел. Делитесь если у кого есть опыт.
    Ответ написан
    Комментировать
  • Почему не проходит авторизация VueJs&Laravel5?

    @jazzus
    Попробуйте get на пост запрос изменить. И в Laravel в роутах и в vue в отправке. И в урлах master / client в группе роутов такого нет. Можно дать name роуту передать в props vue правильный урл из ларавел через route('name')
    Ответ написан
  • Почему axios.post делает get запрос?

    @jazzus Автор вопроса
    Проблема в косой черте "/" в конце урла. Убираешь слеш и гет запрос превращается в пост
    Ответ написан
    Комментировать
  • Как правильно использовать VUE компоненты?

    @jazzus
    Я стараюсь делить на компоненты. Сейчас форма используется в одном месте, с ростом приложения понадобится в других (у меня так часто было). Плюс с компонентами проще работать. Не редактировать простыню, а передаешь компоненту только то, что нужно и уже наглядно рефакторишь без скрытых ошибок.
    Ответ написан
    Комментировать
  • Как получить тело ошибки Laravel - Vue?

    @jazzus
    я получаю ошибки так
    .catch((error)=> {
        this.errors  = error.response.data.errors;
    });
    Ответ написан
    2 комментария
  • Почему меняется значение пропса?

    @jazzus Автор вопроса
    Решение от Dima Polos в комментариях
    this.filter = Object.assign({}, this.default_filter);
    Ответ написан
    1 комментарий
  • Как выполнить код до отрисовки компонентов?

    @jazzus
    Сделать props/параметр show: false и показывать по условию
    например сделать в теге/компоненте v-if="show" а сам show включить, когда нужный код выполнится (т.е. сделать this.show = true)
    Ответ написан
    Комментировать
  • Как разобраться в Vue?

    @jazzus
    Только практика. Потому что мозг человека так устроен – он будет эффективнее запоминать устройство копья во время охоты, а не когда смотрит на березу) С природой и гормональным фоном не поспоришь – вы гораздо быстрее и эффективнее других все выучите (в том числе и основы). А то, что есть в книге - мозг запоминать не будет т.к. это и так в книге есть. Любой начинающий программист это понимает. В следствии неизбежного развития логики)) Документация, основы, термины, понятия – все постепенно подтянется в процессе. Только вы не просто узнаете, что такое массив, но и зачем он на этой планете. Что касается материалов.. Я сам его начал 2 мес. назад изучать без базовых курсов. Действительно док самый лучший ресурс. Видео тоже есть простые и понятные, но по докам мне быстрее получилось узнать, как делать то, что требовалось. С видео есть проблема - они жутко занудные, смотреть сложно и неинтересно. Но на начальных этапах (например когда инсталируешь и пишешь хелло ворлд) - видео самый лучший источник знаний т.к. показывает куда щелкать мышкой. Еще примеры с github. Был один пример в связке с LAravel, ссылки уже не осталось, по нему я 90% логики понял как vue с ларавель работают. Так понятно он там все написал. Поэтому советую github юзать в процессе практики. А так Vue прикольная штука, но бесячая иногда. С этой его реактивностью.. капризной) На ларавеле после него отдыхаешь. Там как написал так и будет, а vue нужно уговаривать чутка) Хотя шаблоны удобнее и быстрее собрать на vue т.к. можно много запросов делать из разных контроллеров без перезагрузок
    Ответ написан
    Комментировать
  • Почему получаю GET при axios.post?

    @jazzus Автор вопроса
    Ошибка была в контроллере на бэке (редирект при проверке переменной).
    Ответ написан
    Комментировать
  • Как сделать одну форму для редактирования/создания VUE?

    @jazzus Автор вопроса
    В общем написал я велосипед и он он работает. Опубликую пока в решение. Что я сделал:

    1) Когда создание статьи, я в пропс передаю пустой объект статьи. Пустой объект заранее готовлю. Что-то типа article={'name: ''}. Передаю из родителя в форму
    2) когда редактирование. В туже форму передаю пропс заполненный объект статьи. Это понятно.
    3) В самой форме поле сделал edit=true/false. Если количество символов в (article.name)==0 то edit==true. А раз мы получаем edit то открывается широкий простор действий:
    Можно менять кнопки, названия в форме. Например: создание /редактирование
    Можно вызывать разные методы сохранения и редактирования
    Что я и сделал. Сейчас еще попробую в контроллере Ларавель в одном методе делать создание и редактирование и будет норм.
    Ответ написан
    Комментировать
  • Как синхронно отрисовать v-for внутри модального окна?

    @jazzus Автор вопроса
    По итогу в процессе обсуждения нашлись решения:

    1) Свойство activ, которое используется для открытия модалки передавать вместе с данными с сервера. Таким образом модалка не будет появляться раньше отрисовки списка и они будут отображаться синхронного. Минус данного велосипеда в задержке появления модалки пока данные не придут.

    2) Передавать уже сформированный массив данных от родителя. А если нужно изменить пропсы то делать запрос к родителю через this.$emit и уже в родителе менять нужные данные в массиве через vue.set

    3) Прятать загрузку данных за анимацией модалки.

    Я остановился на втором варианте. Спасибо Сергей delphinpro и Evgeny Kulakov за идеи
    Ответ написан
    Комментировать
  • Как вызвать загрузку файла в Vue.JS?

    @jazzus Автор вопроса
    Возникла идея просто сформировать ссылку в шаблоне vue компонента. Которая будет также вызывать роут и загружать файл:

    <a v-bind:href="'/test/'+file.id+'/1/download'" class="btn btn-light btn-sm mr-1 mt-2">Скачать</a>


    Скорее всего это велосипед и есть нормальный способ вызывать загрузку файла.
    Ответ написан