Метод oldestOfMany
Метод oldestOfMany применяется к определению связи
типа hasOne или morphOne и возвращает самую
старую связанную запись на основе указанного столбца.
По умолчанию сортировка выполняется по полю id,
но можно указать другой столбец. Этот метод часто используется
для получения, например, первой или самой ранней записи
в отношениях один-к-одному.
Синтаксис
<?php
Model::oldestOfMany($column, $direction);
?>
Пример
Давайте получим самую старую статью пользователя.
Сортировка будет по умолчанию по полю id:
<?php
use AppModelsUser;
$user = User::find(1);
$oldestArticle = $user->articles()->oldestOfMany()->get();
echo $oldestArticle->title;
?>
Результат выполнения кода:
"article 1"
Пример
Получим самую старую статью, сортируя по полю created_at:
<?php
use AppModelsUser;
$user = User::find(1);
$oldestArticle = $user->articles()
->oldestOfMany('created_at')
->get();
echo $oldestArticle->title;
?>
Результат выполнения кода:
"article 2"
Пример
Используем метод в определении связи внутри модели. Это позволяет всегда получать самую старую запись при обращении к свойству:
<?php
namespace AppModels;
class User extends Model
{
public function oldestArticle()
{
return $this->hasOne(Article::class)
->oldestOfMany('created_at');
}
}
?>
Пример
Теперь можно получить самую старую статью пользователя через свойство модели:
<?php
use AppModelsUser;
$user = User::find(1);
$oldestArticle = $user->oldestArticle;
echo $oldestArticle->title;
?>
Результат выполнения кода:
"article 3"
Смотрите также
-
метод
latestOfMany,
который получает самую новую запись -
метод
ofMany,
который позволяет гибко настроить получение записи -
метод
oldest,
который сортирует запрос по возрастанию -
метод
orderBy,
который задаёт произвольную сортировку