[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Hugo Pascoal
Criador Hugo Pascoal 23/06/2022

Salve pessoal boa tarde, me surgiu uma dúvida aqui, estou criando um sistema onde tenho uma relacionamento de N:N então faço a inserção dos itens atrávés do attach (e tem que ser através dele pois tem que ficar como se fosse um histórico, dessas inserções, então eu tenho que pegar de fato o ID dessa tabela pivo que tem a relação e apenas dar um dettach nesse ID expecifíco. gostaria de saber a melhor forma de fazer uma buscar por esse ID apenas na tabela pivot sem precisar fazer uma model para ela por exemplo.

um exemplo:

tabela A    | tabela B      | tabela   A_B

1                  1                   1        1  1
2                  2                   2        1  1
3                  3                   3        2  1
4                  4                   4        2  2

ai suponhamos que eu queira apagar apenas o registro 2 da tabela A_B se eu der um dettach passando o id da tabela 1 e da tabela 2 simplesmente ele irá apagar o registro de ID 1 e ID 2

Manager Carlos Ferreira 23/06/2022

Olá, Hugo!
Tudo bem?

No seu caso que tem uma lógica muito bem definida relacionada aos dados da tabela pivô, vai ser mais fácil para você criar um model para lidar com ela, inclusive é algo aceito pelo Laravel: https://laravel.com/docs/9.x/eloquent-relationships#defining-custom-intermediate-table-models

Carlos Ferreira
Criador Hugo Pascoal 23/06/2022

Salve carlos tudo bem? eu acabei mudando a lógica, por uma que achei mais tranquila, inclusive fiz inspirada no seu projeto do php 5.5 que era o sistema de saldo bancário. pois era algo parecido. fiz alguma pequenas modificações. eu agora só estou enfrentando um pequeno problema nas respostas json, percebi que não estudava API quase nunca então estou fazendo minha primeira API para estudos, esse erro é o seguinte. 

onde o repository faz referencia a tabela Historics 

$result = $this->repository->where('user_id',$id)->with('user')->exists();
       
       if($result == 'true'){
        return response()->json(['error'=>'existem dados do usuário não podemos apagar'], 401);  
        }else{                      
        $result->delete();
        return $result;
        }

erro
 
 
{ "message": "Method Illuminate\\Http\\JsonResponse::first does not exist.", "exception": "BadMethodCallException", "file": "/var/www/vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php", "line": 113, "trace": [
Hugo Pascoal
Criador Hugo Pascoal 23/06/2022

Consegui resolver tudo, era um pequeno erro no resource.

Hugo Pascoal
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!