Usando Repositories com foreach e model adicional | Fórum | School of Net

Deseja poder participar de nosso fórum e tirar todas as suas dúvidas?
Clique aqui e assine nosso plano de acesso ilimitado. Saiba mais.

por

1 semana, 5 dias atrás

Usando Repositories com foreach e model adicional

Olá, entendi toda a parte de repositories e estou usando nos meus projetos, porém surgiu uma dúvida. Conseguiria deixar uma função genérica para um foreach que grava os dados em uma outra tabela? No caso, tenho a seguinte situação: ``` public function store($data) { $dados = new $this->entity(); $dados->nome = $data['nome']; $dados->registro = $data['registro']; $dados->carencia = $data['carencia']; $dados->save(); if(!empty($data['planos'])){ foreach($data['planos'] as $plano){ $plan = new ConvenioPlano(); $plan->nome = $plano['nome']; $plan->convenioid = $dados->id; $plan->save(); } } return true; } ``` Como não sei se é possível colocar como uma função abstrata, coloquei a função store no repository específico do controller que estou usando. No meu controller deixei desta forma ``` public function store(Request $request) { try { $data = $this->repository->store($request->all()); if($data){ return response()->json(['success' => 'Cadastrado com sucesso!'], 200); } return response()->json(['msg' => 'Nenhum registro encontrado'], 500); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()]); } } ``` Como criei uma nova função store no repository específico, ele substitui a função genérica que só pega os dados e grava. Tentei pensar em uma lógica para incluir um model adicional e colocá-lo em foreach, mas não me vêm a cabeça. Desta forma que fiz funciona corretamente, porém, como são muitos controllers que trabalharão desta forma, talvez tenha uma maneira de não ficar tão repetitivo.

6 Respostas