Laravel як скопіювати рядок з таблиці використовуючи eloquent - все про web програмуванні

Вступні дані у нас є таблиця 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. І додаємо два іменованих роута:

Тепер можемо перевірити і додати кілька значень.

Laravel як скопіювати рядок з таблиці використовуючи eloquent - все про web програмуванні

Повідомлення про те, що дані додані виводиться. Давайте перейдемо до бази і подивимося.

Відмінно, дані збережені в таблиці. Тепер давайте створимо метод, який буде виводити всі дані.

Створення методу для виведення даних

Для виведення всіх даних будемо використовувати метод index контролера OrderController. Давайте опишемо його:

В даному методі ми використовуємо статичний метод all () моделі Order, який повертає нам всі дані з таблиці. І далі повертаємо в'юшку index.blade.php, в яку передаємо масив даних.

Створення view для відображення всіх даних в Laravel

Створюємо файл index.blade.php в каталозі resources / views

Залишилося тільки додати роут в файл routes / web.php

Відмінно, все працює.

Тепер переходимо до найцікавішого. Створюємо метод для копіювання рядка.

Створення методу копіювання рядка в Laravel

Перше ми отримуємо замовлення на його id, використовуючи метод find. Далі використовуючи метод replicate копіюємо дані і зберігаємо їх.

Дуже добре, тепер додамо роут.

Тепер можна перевірити. Навпаки даних, тиснемо «Копіювати» і у нас з'являється новий запис з тим же ім'ям.

Laravel як скопіювати рядок з таблиці використовуючи eloquent - все про web програмуванні

Відмінно. Все працює.

Висновок.

Для копіювання даних з таблиці за допомогою 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. І додаємо два іменованих роута:

Тепер можемо перевірити і додати кілька значень.

Laravel як скопіювати рядок з таблиці використовуючи eloquent - все про web програмуванні

Повідомлення про те, що дані додані виводиться. Давайте перейдемо до бази і подивимося.

Відмінно, дані збережені в таблиці. Тепер давайте створимо метод, який буде виводити всі дані.

Створення методу для виведення даних

Для виведення всіх даних будемо використовувати метод index контролера OrderController. Давайте опишемо його:

В даному методі ми використовуємо статичний метод all () моделі Order, який повертає нам всі дані з таблиці. І далі повертаємо в'юшку index.blade.php, в яку передаємо масив даних.

Створення view для відображення всіх даних в Laravel

Створюємо файл index.blade.php в каталозі resources / views

Залишилося тільки додати роут в файл routes / web.php

Відмінно, все працює.

Тепер переходимо до найцікавішого. Створюємо метод для копіювання рядка.

Створення методу копіювання рядка в Laravel

Перше ми отримуємо замовлення на його id, використовуючи метод find. Далі використовуючи метод replicate копіюємо дані і зберігаємо їх.

Дуже добре, тепер додамо роут.

Тепер можна перевірити. Навпаки даних, тиснемо «Копіювати» і у нас з'являється новий запис з тим же ім'ям.

Laravel як скопіювати рядок з таблиці використовуючи eloquent - все про web програмуванні

Відмінно. Все працює.

Висновок.

Для копіювання даних з таблиці за допомогою Eloquent в Laravel існує метод replicate (), який копіює дані.