Laravel #6

LARAVEL #6 Sisestatud 11. detsember 2020
Получение данных из БД
1. Прописываем новое отслеживание URL-адреса
2. Переходим в routes/web.php
3.1. Route::get(‘contact/all’,’ContactController@allData’)->name(‘contact-data’);
3.2. Добавляем ссылку, которая будет вести нас на страницу со всеми сообщениями
4. Переходим в файл resources/views/inc/header.blade.php
5.1. Добавляем строку
<a class=”p-2 text-dark” href=”{{route(‘contact-data’)}}”>
Сообщения</a>
5.2. Надо прописать функцию allData в контроллере и создать сам шаблон, в котором будут
отображаться сообщения
6. Переходим в APP/http/Controllers/ContactController.php
7. Создаем функцию
public function allData() {
$contact = new Contact(); } (связываем с таблицей contacts).
Создаем объект на основе нашей модели Contact. Теперь можем обращаться к объекту модели.
Выведем все значения dd(contac->all())
8. Запускаем локальный сервер БД и переходим на сайт и нажимаем на ссылку messages
9. Можно написать проще:
dd(contact::all());
10. Теперь научимся передавать данные в шаблон
11. Используем функцию view, которая как раз вызывает шаблон
12. Шаблон с названием messages:
public function allData() {
return view(‘messages’, [’data’ => ‘hello’]);}
У параметра data будет значение hello.
В шаблоне ‘messages’ сможем обратиться к параметру ’data’ и его значение будет hello.
[’data’ => Contact::all()]; Все записи будут выведены
13. В папке resources/views создаем новый файл messages.blade.php
Копируем все из home.blade.php

@section(‘content’)

Поменяем title Все сообщения.
@section(‘title-block’)Все сообщения@endsection
@section(‘content’)
<h1>Все сообщения</h1>
Реализуем вывод этих записей.
В шаблоне мы имеем доступ к параметру data. Его и будем перебирать:
@foreach($data as $el)
<div class=”alert alert-info”>
<h3>{{$el->subject}}</h3>

<p>$el->email</p>
<p><small>@el->created_at</small></p>
@endforeach
14. В следующем уроке реализуем кнопку, при нажатии на которую переходим на сообщение по id /1
/2. <a href=”#”><button class=”btn btn-warning”>Детали</button></a>
15. Рассмотрим различные функции, которые существуют для выборки значений из БД.
16. Создаем отдельный объект класса Contact: $contact = new Contact;
Именно через этот объект будем ссылаться на различные функции и передавать значения в сам
шаблон.
$contact->all() – выводит все записи из БД. Для вывода одной записи по id используем
функцию find. $contact->find(2)
Из-за foreach надо передавать массив [], который состоит из одного элемента
17. По умолчанию сортировка происходит по полю created_at
18. При использовании функции inRandomOrder записи будут выдаваться в случайном порядке.
[$contact->inRandomOrder()->first()] – выводит одну запись
dd($contact->inRandomOrder()->get())
Будет возвращен массив данных.
19. Можем указать, по какому полю хотим сортировать записи:
$contact->orderBy(’id’,’desc’)->get()
20. Ограничиваем выводимое количество записей:
return view(‘messages’,[’data’=>$contact->inRandomOrder()->orderBy(’id’,’desc’)->take(2)->get()]);
21. skip позволяет пропустить определенное количество записей из выборки
return view(‘messages’,[’data’=>$contact->inRandomOrder()->orderBy(’id’,’desc’)->skip(1)->take(2)->get()]);
22. Условие выборки where
$contact->where(‘subject’,’=’,’Hello’)->get()

return view(‘messages’,[’data’=>$contact->where(‘subject’,'<>’,’333333333′)->get()]);
23. Можем проверять на <>,>,<,<=,=>