https://itproger.com/course/laravel/6
В файл routes/web.php запишем новый роут:
Route::get('/contact/all', 'ContactController@allData')->name('contact-data');
В файл resources/views/inc/header.blade.php запишем новый пункт в верхнем меню:
<a class="p-2 text-dark" href="{{route('contact-data')}}">Сообщения</a>
В контроллере app/Http/Controllers/ContactController.php создадим новую функцию:
public function allData() { $contact = new Contact(); dd($contact->all()); }
Здесь мы создаем экземпляр модели Contact и получаем все данные из таблицы contacts. Короткая запись этой функции:
public function allData() { dd(Contact::all()); }
Создадим вью resources/views/messages.blade.php :
@extends('layouts.app') @section('title-block')Все сообщения@endsection @section('content') <h1>Все сообщения</h1> @foreach ($data as $el) <div class="alert alert-info"> <h3>{{ $el->subject }}</h3> <p>{{ $el->message }}</p> <p><small>{{ $el->created_at }}</small></p> <a href="#"><button class="btn-success btn">Детальнее</button></a> </div> @endforeach @endsection
Здесь мы будем получать данные из app/Http/Controllers/ContactController.php в переменной $data.
Передадим в нее данные из app/Http/Controllers/ContactController.php:
public function allData() { return view('messages', ['data' => Contact::all()]); }
Функции вывода записей из базы данных
$contact->find(2) // выведет одну запись c id=2 не в формате массива. То есть перебирать ее как массив во вью не нужно. $contact->inRandomOrder()->first() // выводит одну случайную запись. $contact->inRandomOrder()->get() // выводит все записи в случайной сортировке. $contact->orderBy('id', 'asc')->get() // выводит все записи отсортированные по id по возрастанию. Аналог ORDER BY `id` ASC $contact->orderBy('id', 'asc')->take(1)->get() // выводит одну запись отсортированные по id по возрастанию. Аналог ORDER BY `id` ASC LIMIT 1 $contact->orderBy('id', 'asc')->take(1)->skip(2)->get() // выводит одну запись отсортированные по id по возрастанию начиная с 3 записи. Аналог ORDER BY `id` ASC LIMIT 2,1 $contact->orderBy('id', 'asc')->where('email', '=', '[email protected]')->get() // выводит все записи у которых email = [email protected]