[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Wesley Kovalski
Criador Wesley Kovalski 20/01/2022

Não é possível editar uma empresa ao não ser a empresa do usuário autenticado?

Tentei editar outra empresa e retornou o erro:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '28275307000114' for key 'tenants_cnpj_unique'

Manager Carlos Ferreira 20/01/2022

Olá, Wesley!
Tudo bem?

Se for o super admin, é possível, porque ele tem permissão full no sistema.

No seu caso, está dando erro de permissão, porque está usando cnpj duplicado, e a coluna da tabela é unique

Carlos Ferreira
Criador Wesley Kovalski 20/01/2022

Estou logado como SUPER ADMIN

Na migration está como: $table->string('cnpj')->unique()

No request está como: 'cnpj' => ['required', 'digits:14', "unique:tenants,cnpj,{$id},id"]

OBS: na teoria não era para permitir atualizar?



Wesley Kovalski
Manager Carlos Ferreira 20/01/2022

Tem o projeto no GitHub?
Quero ver a estrutura geral do projeto, tabelas e etc.

---

Sua regra de validação está correta, se não existir nenhum outro tenant (a não ser este mesmo), cujo o CNPJ é igual a "28275307000114", tem que atualizar.

Carlos Ferreira
Criador Wesley Kovalski 20/01/2022

Tenho o projeto no github:
https://github.com/KovalskiWeb/larafood\

Pelo que vi aqui ele passa pela Request, mas da erro no update.

Wesley Kovalski
Manager Carlos Ferreira 20/01/2022

Qual é o valor de $id em StoreUpdateTenant?
dd($id);

E qual é o valor de dd($this->tenant)?

---

E quando você tenta editar, informando um CNPJ diferente de "28275307000114", o que acontece?

Carlos Ferreira
Criador Wesley Kovalski 20/01/2022

Qual é o valor de $id em StoreUpdateTenant?

R: 2

 

E qual é o valor de dd($this->tenant)?

R: 2

 

E quando você tenta editar, informando um CNPJ diferente de "28275307000114", o que acontece?

R: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Teste' for key 'tenants_name_unique' (SQL: update `tenants` set `cnpj` = 87549321456910, `name` = Teste, `url` = teste, `email` = [email protected], `subscription` = 2022-01-26, `expires_at` = 2022-02-02, `tenants`.`updated_at` = 2022-01-26 06:01:36 where `id` = 1)


Só da para editar a empresa que pertence ao usuário que está logado.

Eu ainda não baixei o projeto finalizado, para fazer esse teste. Irei fazer aqui e ver se retorna esse mesmo erro.

Wesley Kovalski
Criador Wesley Kovalski 20/01/2022

Consegui achar o problema kkkk.

Lá no TenantController no método update() eu estava sobrescrevendo a $tenant. Estava assim:

if(!$tenant = $this->repository->find($id)) {
  return redirect()->back();
}

$data = $request->all();

$tenant = auth()->user()->tenant; // retirei essa linha e funcionou normal
Wesley Kovalski
Criador Wesley Kovalski 20/01/2022

Obrigado pela atenção professor! Valeu mesmo! E o curso está excelente! Meus parabéns!

Wesley Kovalski
Manager Carlos Ferreira 20/01/2022

Show de bola amigo, parabéns!

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!