Сортировка по дате QueryBuilder
Первый вызов всегда идёт через table()
в котором указываем таблицу базы данных. Метод get()
указывает на окончание запроса и выполняет его в базу данных, возвращает объект Illuminate\Support\Collection
c результатами в котором каждый результат, это экземпляр класса stdClass
.
Методы latest()
и oldest()
позволяют легко отсортировать результаты по дате. По умолчанию выполняется сортировка по столбцу created_at
.
Давайте отсортируем посты по убыванию даты:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
$posts = DB::table('posts')
->latest()
->get();
dump($posts);
}
}
А теперь отсортируем посты по возрастанию даты:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
$posts = DB::table('posts')
->oldest()
->get();
dump($posts);
}
}
Указания поля сортировки
Можно передать имя столбца для сортировки по нему. Для примера давайте отсортируем по возрастанию даты, хранящейся в поле date
:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
$posts = DB::table('posts')
->oldest('date')
->get();
dump($posts);
}
}