[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Albert Reis da Cruz
Criador Albert Reis da Cruz 11/04/2022

Carlos, bom dia amigo.

estou precisando salvar um model e seu relacionamento, tudo de uma vez, já fiz isso em outras ocasioes, mas não estou encontrando o erro agora.

public function createNewInventory(array $data)
{
$data['after'] = "0";
$data['before'] = $data['amount'];
// dd($data);
return $this->entity->logs()->create($data);

// return $this->entity->create($data);
}

estou recebendo um erro de relacionamento:

SQLSTATE[HY000]: General error: 1364 Field 'inventory_id' doesn't have a default value (SQL: insert into `logs` (`after`, `before`, `updated_at`, `created_at`) values (0, 1500, 2022-04-11 09:24:42, 2022-04-11 09:24:42))

 

o projeto está no git, caso queira olhar:

https://github.com/zurctrebla/new-ttech

 

 

 

 

Manager Carlos Ferreira 11/04/2022

Olá, Albert!
Tudo bem?

Neste array $data vc precisa passar o inventory_id (aí precisa ter este valor no array de $fillable do model)

Ou, vc recupera o inventory e insere a partir do relacionamento:
$inventory = Inventory::find($request->inventory_id);
$inventory->logs()->create($request->all());

Carlos Ferreira
Criador Albert Reis da Cruz 11/04/2022

no fillable do model Log, está declarado  inventory_id, no array $data não existe o inventory_id porque este inventory está sendo criado agora, estou tentando passar tudo junto em $inventory->logs()->create($data), mas não está funcionando. Pode ser erro no relacionamento entre os models?

 

Albert Reis da Cruz
Criador Albert Reis da Cruz 11/04/2022

Esqueci de informar: estou usando observer na model inventory, seria isso o motivo de não criar o model com o relacionamento?

Albert Reis da Cruz
Manager Carlos Ferreira 11/04/2022

Posta o código no GitHub, porque fica mais fácil para mim analisar ele pra vc!

Carlos Ferreira
Criador Albert Reis da Cruz 11/04/2022

O git tá na primeira pergunta

https://github.com/zurctrebla/new-ttech

Albert Reis da Cruz
Manager Carlos Ferreira 11/04/2022

Aqui ficou errado, vc passou a instância, precisa do objeto:
https://github.com/zurctrebla/new-ttech/blob/4d678cae83c7a7970b7a03a3b5355458e69dd45e/app/Repositories/InventoryRepository.php#L31

$inventory = $this->entity->create($data);
$inventory->logs()->create($data);

Carlos Ferreira
Criador Albert Reis da Cruz 11/04/2022

Resolvido!

Obrigado novamente.

Albert Reis da Cruz
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!