Laravel: отношение один ко многим, извлечение последней N записи из таблицы - PullRequest
1 голос
/ 14 апреля 2020

У меня есть модель User и workLOG. Пользовательская модель имеет много рабочих журналов, что означает, что у одного пользователя может быть много рабочих журналов (ОДИН ИЗ МНОГИХ ОТНОШЕНИЙ). Я создал связь, используя связь Eloquent.

Модель пользователя

public function workLog()
{
return $this->hasMany('App\WorkLog','user_id','id');
}

workLog Модель

class WorkLog extends Model
{
    protected $table="worklog";
}

Таблица рабочего журнала имеет столбец с именем total_hours_per_day. Как я могу извлечь последние N записей из столбца вошедшего в систему или аутентифицированного пользователя?

Что я сделал, чтобы получить workLog до сих пор

$worklogs = Auth::user()->workLog;

Теперь я хочу получить последнюю 7 данных из столбца total_hours_per_day

Скриншоты таблицы enter image description here

enter image description here

Ответы [ 3 ]

2 голосов
/ 14 апреля 2020

Попробуйте использовать take () Как указано в документации Laravel: метод take возвращает новую коллекцию с указанным количеством элементов "

2 голосов
/ 14 апреля 2020

вам нужно установить sh на модели WorkLog a belongsTo.

public function user()
{
return $this->belongsTo('App\User');
}

Редактировать: отношения должны быть установлены в обеих моделях, которые вы пытаетесь связать. Если вам нравится девушка, ей нужно, чтобы вы вернулись к установлению отношений. Вы только что определили отношения в одну сторону.

0 голосов
/ 15 апреля 2020
$worklogs = Auth::user()->workLog->take(-7)->reverse();

и я извлекаю последние 7 записей из столбца total_hours_per_day в шаблоне блейда как: -

@foreach ($worklogs as $worklog)
{{ $worklog->total_hours_per_day }}
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...