Laravel #7

LARAVEL #7 Sisestatud 11. detsember 2020
Редактирование и удаление записей, отображение записей на отдельных страницах
1. Реализуем кнопку Детальное в шаблоне view/messages.blade.php
2. На какой url будем ссылаться
/contact/all/id той записи, которую необходимо отобразить
3. Переходим в routes/web.php, где записываем новое отслеживание url-адреса:
Route::get(‘contact/all/{id}’,’ContactController@showOneMessage’)->name(‘contact-data-one’)
4. Переходим в шаблон Resources/views/messages.blade.php
<a href=”{{route(‘contact-data-one’,$el->id)}}”>
5. Теперь надо создать функцию showOnMessage, а также необходимо создать шаблон
6. Переходим в App/http/controllers/ContactController.php
7. В функции allData() меняем $contact->all(), чтобы выводились все записи
8. Создаем новую функцию public function showOneMessage($id).
В функцию необходимо передавать один динамический параметр. Если было бы два динамических
параметра, то писали бы ($id, $some).
$contact = new Contact;
return view(‘one-message’, [’data’ => $contact->find($id)])
9. Дублируем messages.blade.php и называем one-message.blade.php.
Title будет $data->subject
10. Поскольку мы передаем одну запись, то нам не нужно перебирать это через цикл
11. В h1 устанавливаем тоже $data->subject.
Цикл не нужен. h3 subject удалим.
Email и created_at оставляем.
<p>{{$data->message}} выводим.
В кнопке $data->id
12. Переходим на страницу сообщения, нажимаем на кнопку и перехоид на страницу с id.
{{$data->subject}} в фигурной скобке
13. Создадим возможность редактирования и удаления записей.
16. Для кнопки меняем надпись “Редактировать”. В one-message.blade.php
17. Меняем class кнопки btn-primary
18. Меняем route(‘contact-update’)
19. Переходим в web.php. Создаем новое отслеживание url
20. Меняем функцию и имя updateMessage, ‘contact-update’
21. Переходим в контроллер. Прописываем новую функцию updateMessage.
public function updateMessage($id) {
return ‘update-message’}
return view(”,[’data’ => $contact->find($id)])
22. Реализуем сам шаблон update-message
23. Взять contact.blade.php, продублировать его (duplicate)
Называем update-message.blade.php
24. Title меняем на “Обновление записи”, кнопка ‘обновить’
value=$data->subject, выводит значения этого сообщения,
value=$data->email, <textarea>$data->message</textarea>
25. Обновим страницу и нажимаем на кнопку update, выводятся необходимые данные
26. Создаем страницу для обработки данных из формы
27. Заходим в web.php и создаем новый url-адрес, который будем отслеживать.
Надо передавать id той записи, которую надо обновлять.
Route::post(‘contact/all/{id}/update’, ‘UpdateMessageSubmit’)->name(‘contact-update-submit’)
28. В шаблоне надо вызвать этот url-адрес. update-message.blade.php
action=”contact-update-submit” $date->id,
передаем динамическое значение
29. Переходим в контроллер и копируем функцию submit, меняем название updateMessageSubmit
и передаем два параметра ($id, $req)
$id должен передаваться как первый параметр:
$contact = Contact::find($id)
Меняем все поля и сохраняем.
После этого надо переадресовать пользователя. Надо переадресовать пользователя на страницу
с этим id, копируем contact-data-one,
redirect->route(‘contact-data-one’,$id),
Message was updated
30. one-message.blade.php дополнительно выведем имя <p>{{ $data->email }} – {{ $data->name }}</p>
31. В файле one-message.blade.php cоздаем кнопку для удаления записи
<a href=”contact-delete”> btn-danger, Delete this message
32. В web.php отслеживаем URL
! get /contact/all/{id}/delete, deleteMessage
->name(‘contact-delete’)
33. Идем в contactController и создаем одну дополнительную функцию deleteMessage
public function deleteMessage($id) {
contact find($id)->delete()}
return redirect()->route(‘contact-data’, $id)->with(‘success’,’Message was deleted’);