выберите данные без повтора в сводной таблице - PullRequest
1 голос
/ 26 апреля 2020

У меня есть 2 таблицы и 1 сводная таблица, которые я использую в качестве таблицы Historical, в столбце «dateChange» указывается магазин, где находится сотрудник, поскольку я использую Orderby («dateChange», «DES C») . Все в порядке, однако, как я могу отфильтровать результаты в моем контроллере? без записей REPEAT? Мне нужно показать всем сотрудникам, которые принадлежат к уникальному магазину. Я повторяю еще раз: Я использую 'dateChange', потому что знаю последний магазин. Помогите мне, пожалуйста. Спасибо

Сводная таблица (employee_store)

  • FK_idStore
  • FK_idEmployee
  • dateChange

Таблица Employee

  • idEmployee
  • Имя

Table Store

  • idStore
  • nameStore
  • direction

Модель

public function employee(){    
   return $this->belongsToMany(employee::class,'employee_store', 'fk_idStore','fk_idEmployee')        
  ->withPivot('dateChange')->orderBy('dateChange','DESC');  

Контроллер

$store= Store::findOrFail($id)->employee
return $store

Ответы [ 3 ]

0 голосов
/ 26 апреля 2020

вы должны использовать готовую загрузку:

в вашем контроллере

$store= Store::findOrFail($id)->with('employee')->get();
return $store;

подробнее в:

https://laravel.com/docs/7.x/eloquent-relationships#eager -загрузка

0 голосов
/ 27 апреля 2020

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

public function employee(){
    return Employe_Store::all()->groupBy('fk_idEmployee')->max('dateChange');
}
0 голосов
/ 26 апреля 2020

Вы должны изменить

public function employee(){
return $this->belongsToMany(employee::class,..

на

public function employees(){
return $this->belongsToMany(Employee::class,..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...