Класс Builder
не имеет метода random()
, а класс Collection
. Кроме того, oldest()
не принимает целое число в качестве аргумента, он ищет column
для использования (использует created_at
по умолчанию).
Используйте вместо этого следующий запрос:
$posts = Post::inRandomOrder()->limit(5)->get();
Примечание: не используйте ->first()
, если вы хотите несколько строк;->first()
возвращает первую строку из базы данных, ->get()
возвращает строки в Collection
.
Правка: неверное прочтение вопроса. См. Запрос ниже:
$randomPost = Post::oldest()->limit(5)->get()->random();
Используйте начальные Post::oldest()->limit(5)->get()
, чтобы получить 5 Posts
, упорядоченный по created_at
, затем используйте логику Collection
, чтобы возвратить одну запись через random()
.