Вступні дані у нас є таблиця orders, яка має наступну структуру.
Є модель Order
І встановили підключення до бази даних в .env.
Давайте створимо контролер, який буде мати три методи:
- додавати запис
- Виводити всі записи
- І копіювати запис
Створення контролера в Laravel
Для створення контролера використовуємо команду artisan
Таким чином ми з вами створили контролер OrderController з прпісаннимі методами:
Нам залишилося тільки прописати дії в методах
Створення методу для додавання записів
Для додавання нового запису у нас будуть використовуватися два методи create, який буде виводити форму додавання і store, який буде додавати запис в базу даних.
Опишемо метод create
Метод просто повертає в'юшку create.blade.php
Тепер давайте опишемо метод store, який отримує дані методом POST і запісивет їх в базу.
Викликаємо статичний метод create моделі Order, який записує в таблицю orders дані.
І далі повертаємо редирект назад звідки ми прийшли, додаючи флеш повідомлення «Дані збережені»
Що таке флеш повідомлення ви можете прочитати в документації Laravel
Створення view для додавання даних в Laravel
Створюємо файл create.blade.php в resources / views та додаємо в нього наступний код.
Тут теж нічого складного немає. За допомогою рядка »Rel =" stylesheet »> підключаємо bootstrap. Далі перевіряємо сесію message, яку ми передаємо як флеш повідомлення. Якщо вона існує виводимо її вміст.
Далі створюємо форму, де в якості параметра action передаємо роут з назвою store.
Далі використовуємо хелпер csrf_field (), який в нашу форму поміщає з токеном, необхідно для захисту від міжсайтових запитів.
Ну в принципі і все. Залишилося створити два роута. Відкриваємо файл web.php, який знаходиться в папці routes. І додаємо два іменованих роута:
Тепер можемо перевірити і додати кілька значень.
Повідомлення про те, що дані додані виводиться. Давайте перейдемо до бази і подивимося.
Відмінно, дані збережені в таблиці. Тепер давайте створимо метод, який буде виводити всі дані.
Створення методу для виведення даних
Для виведення всіх даних будемо використовувати метод index контролера OrderController. Давайте опишемо його:
В даному методі ми використовуємо статичний метод all () моделі Order, який повертає нам всі дані з таблиці. І далі повертаємо в'юшку index.blade.php, в яку передаємо масив даних.
Створення view для відображення всіх даних в Laravel
Створюємо файл index.blade.php в каталозі resources / views
Залишилося тільки додати роут в файл routes / web.php
Відмінно, все працює.
Тепер переходимо до найцікавішого. Створюємо метод для копіювання рядка.
Створення методу копіювання рядка в Laravel
Перше ми отримуємо замовлення на його id, використовуючи метод find. Далі використовуючи метод replicate копіюємо дані і зберігаємо їх.
Дуже добре, тепер додамо роут.
Тепер можна перевірити. Навпаки даних, тиснемо «Копіювати» і у нас з'являється новий запис з тим же ім'ям.
Відмінно. Все працює.
Висновок.
Для копіювання даних з таблиці за допомогою Eloquent в Laravel існує метод replicate (), який копіює дані.
Вступні дані у нас є таблиця orders, яка має наступну структуру.
Є модель Order
І встановили підключення до бази даних в .env.
Давайте створимо контролер, який буде мати три методи:
- додавати запис
- Виводити всі записи
- І копіювати запис
Створення контролера в Laravel
Для створення контролера використовуємо команду artisan
Таким чином ми з вами створили контролер OrderController з прпісаннимі методами:
Нам залишилося тільки прописати дії в методах
Створення методу для додавання записів
Для додавання нового запису у нас будуть використовуватися два методи create, який буде виводити форму додавання і store, який буде додавати запис в базу даних.
Опишемо метод create
Метод просто повертає в'юшку create.blade.php
Тепер давайте опишемо метод store, який отримує дані методом POST і запісивет їх в базу.
Викликаємо статичний метод create моделі Order, який записує в таблицю orders дані.
І далі повертаємо редирект назад звідки ми прийшли, додаючи флеш повідомлення «Дані збережені»
Що таке флеш повідомлення ви можете прочитати в документації Laravel
Створення view для додавання даних в Laravel
Створюємо файл create.blade.php в resources / views та додаємо в нього наступний код.
Тут теж нічого складного немає. За допомогою рядка »Rel =" stylesheet »> підключаємо bootstrap. Далі перевіряємо сесію message, яку ми передаємо як флеш повідомлення. Якщо вона існує виводимо її вміст.
Далі створюємо форму, де в якості параметра action передаємо роут з назвою store.
Далі використовуємо хелпер csrf_field (), який в нашу форму поміщає з токеном, необхідно для захисту від міжсайтових запитів.
Ну в принципі і все. Залишилося створити два роута. Відкриваємо файл web.php, який знаходиться в папці routes. І додаємо два іменованих роута:
Тепер можемо перевірити і додати кілька значень.
Повідомлення про те, що дані додані виводиться. Давайте перейдемо до бази і подивимося.
Відмінно, дані збережені в таблиці. Тепер давайте створимо метод, який буде виводити всі дані.
Створення методу для виведення даних
Для виведення всіх даних будемо використовувати метод index контролера OrderController. Давайте опишемо його:
В даному методі ми використовуємо статичний метод all () моделі Order, який повертає нам всі дані з таблиці. І далі повертаємо в'юшку index.blade.php, в яку передаємо масив даних.
Створення view для відображення всіх даних в Laravel
Створюємо файл index.blade.php в каталозі resources / views
Залишилося тільки додати роут в файл routes / web.php
Відмінно, все працює.
Тепер переходимо до найцікавішого. Створюємо метод для копіювання рядка.
Створення методу копіювання рядка в Laravel
Перше ми отримуємо замовлення на його id, використовуючи метод find. Далі використовуючи метод replicate копіюємо дані і зберігаємо їх.
Дуже добре, тепер додамо роут.
Тепер можна перевірити. Навпаки даних, тиснемо «Копіювати» і у нас з'являється новий запис з тим же ім'ям.
Відмінно. Все працює.
Висновок.
Для копіювання даних з таблиці за допомогою Eloquent в Laravel існує метод replicate (), який копіює дані.