Vue3 + Laravel: Большой туториал | Как создать интерактивную таблицу с пагинацией
В этом туториале мы рассмотрим, как создать интерактивную таблицу с пагинацией с использованием Vue3 и Laravel. Это очень полезный функционал для веб-приложений, позволяющий пользователям просматривать большие объемы данных по частям.
Шаг 1: Установка Laravel и настройка API
Сначала установим Laravel, используя Composer:
composer create-project --prefer-dist laravel/laravel имя_проекта
Затем создадим модель и миграцию для нашей таблицы данных:
php artisan make:model Data -m
Укажем поля таблицы в миграции и выполним миграцию:
php artisan migrate
Теперь настроим API для получения данных из таблицы. Создадим контроллер и маршруты для этого:
php artisan make:controller DataController
И добавим маршруты в файл routes/api.php:
Route::get('/data', [DataController::class, 'index']);
Шаг 2: Создание Vue3 приложения
Устанавливаем Vue CLI, если еще не установлено:
npm install -g @vue/cli
Создаем новый проект Vue3:
vue create имя_проекта
Шаг 3: Создание компонента таблицы с пагинацией
Создадим компонент Table.vue:
Шаг 4: Получение данных из API с помощью Axios
Устанавливаем Axios, если еще не установлено:
npm install axios
Используем Axios для запроса данных из API в компоненте Table.vue:
// в методе fetchData() компонента Table.vue
axios.get('/api/data', {
params: {
page: this.page,
perPage: this.perPage,
},
})
.then(response => {
this.items = response.data;
})
.catch(error => {
console.error(error);
});
Шаг 5: Использование компонента в приложении Vue3
Добавляем компонент Table.vue в файле App.vue:
Шаг 6: Запуск приложения
Запускаем Laravel приложение на одном порту с Vue3 приложением:
php artisan serve
Запускаем Vue3 приложение:
npm run serve
Теперь мы создали интерактивную таблицу с пагинацией, которая получает данные из Laravel API и отображает их с помощью Vue3. Этот туториал поможет вам освоить работу с Vue3 и Laravel, а также создать мощный функционал для ваших веб-приложений.
Спасибо за урок.
Вопрос: как всё-таки вывести ФИО, остальные колонки выводятся благодаря совпадению названия поля в БД и в columns?
И как сделать динамичным количество страниц (в уроке оно всегда равно 5)?
Спасибо большое
Мне жадно необходимы знания в эволюции по laravel. Я долгие годы лепил лендинги и сайты-каталоги на различных CMS, с обычными MySQL БД. Теперь мне жуть как интересно делать highload spa сайты на laravel+vuejs (прежде всего lara).
Курс по lara очень будет любопытен. В частности интересно как избавляться от жирных контроллеров, паттерны, solid, вобщем все что делает хоть шаг за задачи уровня элементарного CRUD. Также по большому счету интересно повышать навык программирования на PHP в принципе и
особняком любопытен разбор всех возможностей php в области ООП. Вокруг много теории но слабо доходит накой черт нужны например enum, dto, di и так не счесть сколько всего, но касательно ООП.
На мой взгляд тут это все сочетается. Вобщем интересен курс не для начинающего а для продолжающего.
Vue только как веб-сервер может работать с Laravel? Как jQuery например его нельзя использовать статично?
работал с laravel countries? покажешь как делать мультиязчные теги категории страны города ?
Здравствуйте, очень понравился ролик, но возник вопрос, как с такой архитектурой сделать авторизацию с использование JWTтокенов, как передавать токены, сгенерированные на стороне Laravel клиенту на Vue?
Подскажите что за музыка ? Понравилась
Супер🎉
Спасибо большое, отличный туториал!
Отличное видео. Очень жду курс по Laravel от Lectoria!
🎉🎉🎉🎉 круто
Спасибо большое Lectoria top!
Спасибо за видео
спасибо человечище – я вот все изучаю изучаю а начать кодить никак не могу – все время ищу примеры кода – как побороть
продолжаю просмотр, но не удержался от написания коментария. Ох уже эти разработчики vite, по всем правилам английского языка нужно произносить как "вайт", но они упрямо требут произносить "вит".
Спасибо за видео. Особенно за фильтры и сортировку
Привет. Очень качественный курс, спасибо огромное за труды!!!
А можно ссылку на макет сайта я что то не нашел?
ууух спасибо огромное, теперь есть чем заняться в свой выходной)