Olá! Tenho as seguintes tabelas:
- Usuários;
- Empresas;
- Funcionários.
Estou tentando trazer todos os funcionários de uma empresa. No SQL é bem fácil:
SELECT c.name, eu.name FROM users u
JOIN companies c ON c.user_id = u.id
JOIN employees e ON e.company_id = c.id
JOIN users eu ON eu.id = e.user_id
WHERE u.id = 2
Porém no Laravel já tentei de tudo e não consigo obter essa listagem (nome da empresa + nome do funcionário) corretamente.
Seguem as tentativas frustadas:
-
Nessa eu tentei obter todas as empresas do usuário logado para em seguida listar todos os funcionários.
$companies = Auth::user()->with('companies')->with('employee')->where('id', '=', Auth::user()->id)->get();
-
Nessa eu parti do modelo Funcionário.
$employees = Employee::with('company')->with('user')->where('user_id', Auth::user()->id)->paginate(30);
Como a plataforma é multi usuário, é interessante lembrar que:
- Um Usuário possui N Empresas;
- Uma Empresa possui N Funcionários;
- E um Funcionário pertence a UM Usuário.
Dai que vem a estrutura circular das tabelas.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire