2
respostas

select com muitas tabelas

bom dia Pessoal , Como faço um select para trazer os campos dessa maneira?

"id": 8,
"user_company": [
    {
        "id": 1,
        "company_id": null,
        "pivot": {
            "user_id": 8,
            "company_id": 1
        }
    }
],
"unit": [],
"department": [],

Eu consegui ligar a tabela company com a tabela user_company.....mas como faço para ligar a tabela unit e department?

a ligação do banco de dados é a seguinte: https://imgur.com/4VYy3tZ

O controller está assim:

class UserController extends BaseController {
    public function __construct(User $user){
        $this->classe = User::class;
        $this->model = $user;

    }

    public function getCompany($id)
    {
        if (!$data = $this->model
            ->with('userCompany','unit')->find($id)
        ) {
            return response()-> json(['error' => "nada encontrado"], 404);
        } else {
            return response()->json($data);
        }
    }
}

O Model está assim:

    public function userCompany()
    {
        return $this->belongsToMany(Company::class,'user_company');
    }
    public function unit()
    {
        return $this->belongsTo(Company::class,'company_id');
    }
2 respostas

Olá, Jungles. Desculpa a demora.

Não sei se entendi bem sua dúvida, mas acho que você quer algo tipo:

User::with('userCompany')->with('unit')->find($id)

Não vi na sua model o mapeamento de department...