Получение последней строки в лезвии laravel

Мне нужно отфильтровать информацию о пользователе и вернуть только последнюю строку.

Код

Blade

@foreach($users as $user)

    //user data
    @foreach($user->invoices as $invoice)
        {{$invoice->type->name}}
    @endforeach

@endforeach

Это возвращает все пользовательские счета, которые мне нужно отфильтровать и получить только последний.

Проблема

Я знаю, что могу получить последнюю строку с помощью first() в контроллере, но поскольку эти данные находятся на моей странице пользователей (показывающей всех пользователей), я не могу зациклить своих пользователей в своем контроллере, мне нужно получить это действие first в лезвии.

Controller

public function index()
{
    $users = User::orderby('id', 'desc')->get();

    return view('admin.users.index', compact('users'));
}

Есть идеи?

User::last() можно использовать

Learner 10.04.2019 12:21

@Ученик где? Я не использую User мои пользователи зациклены

mafortis 10.04.2019 12:24

Итак, вам нужен последний счет? Или что?

Learner 10.04.2019 12:27

@Ученик да!..

mafortis 10.04.2019 12:28
$user->inovices->latest() или $user->inovices()->latest()
Learner 10.04.2019 12:29

@Ученик Method Illuminate\Database\Eloquent\Collection::latest does not exist.

mafortis 10.04.2019 12:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
6
896
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Чтобы получить последнюю версию, вы можете сделать это:

$user->inovices->latest() or $user->inovices()->latest()

Метод last() упорядочивает все строки по типу created_at desc и берет первую.

Если это не работает, вы можете:

Модель User.php:

public function latestInovice() {
    return $this->hasOne(Inovice::class)->latest();
}

А затем используйте:

$users = User::with(['latestInovice'])->get();
Ответ принят как подходящий

Решено

Я использовал код ниже, и теперь он показывает мою последнюю строку

{{$user->invoices->last()->type->name}}

Thanks to those for down-vote without providing solution, I just don't get it if my question was so wrong or that ridiculous why they couldn't solve it?!!

Другие вопросы по теме